Je veux une directive emplacement nginx qui correspondrait tous les urls avec « xyz » et ne correspondent pas « .php »expresssion régulière pour correspondre à quelque chose et ne pas correspondre à quelque chose
J'ai essayé
location ~* /(.*)xyz/(.*)(?!\.php)(.*)$ {}
mais pour par exemple, il semble toujours correspondre à la fois/xyz/1 et /xyz/1.php mais il aurait dû correspondre seulement/xyz/1
C'est. difficile à lire, déboguer et nécessiterait pas mal de commentaires si on le laissait dans le code de l'application. Je pense que les hacks ne devraient être réservés que lorsqu'il n'y a pas d'autres solutions, et la solution est facile ici. –
C'est faux. Il échoue lorsqu'au moins l'une des quatre classes de caractères ne peut pas être mise en correspondance. Mais cela ne devrait échouer que si tous ne peuvent être jumelés. – Gumbo
Je pense que vous mélangez '[^ a] [^ b]' avec '[ab]' –