2009-10-05 16 views
6

Ho un .htaccess nella root del mio sito che assomiglia a questo:Come posso disabilitare RewriteRule per una sottocategoria?

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] 

Ma quando si digita:

mydomain.pl/guests

vorrei andare normalmente agli ospiti della cartella effettiva. Capisco che ho bisogno di in qualche modo disabilitare questa regola per la sottocartella degli ospiti, ma come faccio?

EDIT:

Ho incluso tutto il file .htaccess

+0

+1 Questa è una domanda perfettamente valida. – roosteronacid

risposta

14

ho messo un .htaccess nella sottocartella e ha aggiunto RewriteEngine Off e funziona.

+0

Questo non funzionerà, se la riscrittura avviene nella cartella sopra. –

+0

Soluzione non buona. Se la sottocartella contiene un'applicazione esterna che a sua volta utilizza un .htaccess e la sovrascrive su ogni aggiornamento, è necessario modificarla ogni volta. – StanE

+1

Esiste una soluzione senza RewriteCond: http://stackoverflow.com/a/1848579/1854856 – StanE

0

aggiungere uno di questi

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

Devo riavviare il server? L'ho fatto e non funziona. –

+0

Dipende da dove sono posizionate le regole. È htaccess o file di configurazione principale? Inoltre, sono quelle tutte le tue regole? –

+0

@Vinko - Grazie per la risposta Ho incluso il mio intero file htaccess. Come cambiarlo in modo che funzioni? –

Problemi correlati