En excluant un répertoire avec ISAPI-Rewrite
-
22-08-2019 - |
Question
Je suis en train d'exclure un répertoire avec ISAPI Rewrite. (Note: ceci est une fenêtre / port de iis-mod rewrite)
Le répertoire que je veux exclure est « api » quand il est à la racine du site.
Voici ma règle:
RewriteRule ^ (/ api /)(.+)$ $ 1 $ 2 [NC, L]
Une demande ressemblerait à quelque chose comme ceci: / Api / v2 / utilisateurs? = Noms d'utilisateur scottw
Malheureusement, la valeur est toujours querstring être exclu et l'URL est en cours rewrittten comme / api / v2 / utilisateurs.
J'attaque sous l'hypothèse que (. +) Engloberait tout le reste.
Toutes les suggestions? Ou une meilleure façon d'exclure un répertoire?
Merci
Mise à jour : Je l'ai également simplifié la règle, mais cela n'a rien changé non plus:
RewriteRule ^ (/ api /.+)$ $ 1
La solution
Turns out il y a deux choses qui se passent ici:
- Le regex doit être ^ (api /) et non ^ (/ api). Le premier "/" est exclue.
- L'outil d'analyse syntaxique regex qui est livré avec ISAPI_Rewrite ne semble pas gérer correctement querystrings.
La règle qui semble enfin fonctionner est:
RewriteRule ^(api/.+) $1 [NC,L]
Autres conseils
Je l'ai vu parfois «+ » fonctionne bizarrement, vous pouvez essayer de passer à « .. * » Je ne dis pas que cela va fonctionner, mais il pourrait être la peine d'essayer.