2009-10-05 9 views
6

J'ai un .htaccess dans ma racine du site qui ressemble à ceci:Comment désactiver RewriteRule pour une sous-catégorie?

RewriteEngine On 

RewriteCond %{HTTP_HOST} !^www\.mydomain\.pl [NC] 
RewriteCond %{HTTP_HOST} ^(?:www\.)?([a-z0-9_-]+)\.mydomain\.pl [NC] 
RewriteRule ^/?$ /index.php?run=places/%1 [L,QSA] 

RewriteCond %{REQUEST_URI} !^/index.php$ 
RewriteCond %{REQUEST_URI} !^/images/ 
RewriteCond %{REQUEST_URI} !^/upload/ 
RewriteCond %{REQUEST_URI} !^/javascript/ 
RewriteRule ^(.*)$ /index.php?runit=$1 [L,QSA] 

Mais quand je tape:

mydomain.pl/guests

Je voudrais aller normalement aux invités de dossiers réels. Je comprends que j'ai besoin de désactiver cette règle pour le sous-dossier des invités, mais comment faire?

EDIT:

J'ai tout inclus fichier .htaccess

+0

+1 Ceci est une question parfaitement valide. – roosteronacid

Répondre

14

J'ai mis un htaccess dans et sous-dossier ajouté RewriteEngine Off et il fonctionne.

+0

Cela ne fonctionnera pas, si la réécriture se produit dans le dossier ci-dessus. –

+0

Pas une bonne solution. Si le sous-dossier contient une application étrangère qui utilise lui-même un .htaccess et l'écrase à chaque mise à jour, il faut le modifier à chaque fois. – StanE

+1

Il existe une solution sans RewriteCond: http://stackoverflow.com/a/1848579/1854856 – StanE

0

Ajouter un de ces

RewriteEngine On 

#If the request starts with guests, then pass it through 
RewriteCond %{REQUEST_URI} ^guests 
RewriteRule^- [L,QSA] 

#Or, if the request contains an existing filename or directory, pass it through 
RewriteCond %{REQUEST_FILENAME} -d [OR] 
RewriteCond %{REQUEST_FILENAME} -f 
RewriteRule^- [L,QSA] 
+0

Dois-je redémarrer le serveur? Je l'ai fait et ça ne marche pas. –

+0

Dépend de l'endroit où les règles sont placées. Est-ce htaccess ou les fichiers de configuration principaux? Aussi, sont-ils toutes vos règles? –

+0

@Vinko - Merci de votre réponse J'ai inclus tout mon fichier htaccess. Comment le changer pour que ça marche? –

Questions connexes