2009-05-19 8 views
1

J'essaie d'exclure un répertoire avec ISAPI-Rewrite (note: il s'agit d'un port de mod-rewrite sous Windows/iis).Exclure un répertoire avec ISAPI-Rewrite

Le répertoire que je veux exclure est "api" lorsqu'il se trouve à la racine du site.

Voici ma règle:

RewriteRule^(/ api /)(.+)$ $ 1 $ 2 [NC, L]

Une demande ressemblerait à quelque chose comme ceci: /api/v2/users? usernames = scottw

Malheureusement, la valeur de la chaîne de requête est toujours exclue et l'URL est réécrite sous/api/v2/users. J'attaque sous l'hypothèse que (. +) Capturerait tout le reste.

Des suggestions? Ou une meilleure façon d'exclure un répertoire?

Merci

Mise à jour: J'ai également simplifié la règle, mais qui soit n'a rien changé:

RewriteRule^(/ api /.+)$ 1

Répondre

2

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

  1. Le regex doit être^(api /) et non^(/ api). Le premier "/" est exclu.
  2. L'outil d'analyse syntaxique regex fourni avec ISAPI_Rewrite ne semble pas gérer correctement les chaînes query.

La règle qui semble enfin fonctionner est:

RewriteRule ^(api/.+) $1 [NC,L] 
+0

Il s'avère que cela peut être encore plus simple. RewriteRule^api/- [NC, L] –

0

$ J'ai vu parfois '. +' fonctionne bizarrement, vous pouvez essayer de passer à '.. *' Je ne dis pas que ça va marcher, mais ça vaut la peine d'essayer.

+0

Merci pour la suggestion, mais qui ne fonctionne pas non plus. –

Questions connexes