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

Était-ce utile?

La solution

Turns out il y a deux choses qui se passent ici:

  1. Le regex doit être ^ (api /) et non ^ (/ api). Le premier "/" est exclue.
  2. 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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top