2010-02-26 8 views
0

Cela fait maintenant quelques heures que je travaille dessus et je n'arrive pas à comprendre quelle est la bonne regex. Tout d'abord, je travaille avec IIS6 et ISAPI_Rewrite 3.0 et je teste mon regex avec l'utlité qui l'accompagne avant de l'utiliser sur le site web.Une autre question regex avec ISAPI-Rewrite

Le site Web a une application Web située à www.foo.com/bar/ et je veux restreindre l'accès à tous les sous-dossiers et/ou sous-fichiers autres que default.aspx.

Ce qui signifie que www.foo/bar/default.aspx devrait fonctionner, mais pas www.foo/bar/oof~~V~~3rd ou www.foo/bar/oof/.../rab.txt

Voici ce que J'ai dans mon fichier httpd.ini:

RewriteCond URL 
RewriteRule /gs2/(\w|\.|\\|\/)+ /gs2/ [RP] 

Il fonctionne fini pour tout sauf le default.aspx. Je sais pourquoi mais je n'arrive pas à trouver la bonne syntaxe.

Merci

Répondre

0

Peut-être que vous voulez

RewriteRule /foo/bar/.* /foo/bar/default.aspx [RPL] 

Ce réoriente après tout /foo/bar/-/foo/bar/default.aspx, la mise en [RPL] signifie que c'est la dernière règle qui est appliquée afin de ne pas dans une boucle.

+0

Le doc dit que le R est toujours la dernière règle. De plus, ça ne marche pas pour moi. Puisque mon fichier par défaut pour IIS est default.aspx, ne pourrais-je pas simplement le supprimer dans la chaîne de format? ** Modifier **: Lorsque j'ajoute le 'L' ça cesse de fonctionner ... – ALOToverflow

+0

Vous m'avez inspiré;) L'idée générale de la réécriture d'URL était de bloquer l'accès à certains types de fichiers sur le serveur. Je l'ai fait pour le fichier xml et swf comme ceci: RewriteRule /gs2/(.+)((\.xml)|(\.swf))/gs2/[R] – ALOToverflow