web-dev-qa-db-fra.com

En NginX ce que signifie emplacement ^ ~

Si je ne me trompe pas,
location = / {} signifie "uniquement le dossier /, ni les fichiers qu'il contient, ni les sous-dossiers"
location ~ / {} signifie "le dossier /, tous les fichiers qu'il contient, tous les sous-dossiers et leurs sous-fichiers"
Mais ce que cela signifie:
location ^~ / {}?
J'ai trouvé cette configuration sur le Web, mais je n'ai pas pu trouver de réponse à Google.
Je l’ai trouvé dans un tutoriel alors que j’essayais de protéger avec htpasswd un dossier et tout ce qu’il contient. Cependant location ~ / a fait le travail, même si location ^~ / protégeait tout aussi bien, il ne laissait pas les pages php fonctionner correctement.

1
Kunepro

Citation de documentation nginx :

Si l'emplacement du préfixe correspondant le plus long comporte le modificateur "^ ~", les expressions régulières ne sont pas vérifiées.

Ainsi, si l'emplacement correspond à/emplacement, les emplacements utilisant regex ne sont pas évalués. Cela provoque l'effet que vous avez décrit, c'est-à-dire que les scripts PHP cessent de fonctionner, car les scripts PHP sont généralement définis à l'aide d'un bloc d'emplacement regex.

1
Tero Kilkanen