2009-10-05 18 views
6

Mam .htaccess w moim katalogu głównym strony internetowej, która wygląda tak:Jak mogę wyłączyć RewriteRule dla jednej podkategorii?

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] 

Ale kiedy wpisać:

mydomain.pl/guests

chciałbym idź normalnie do rzeczywistych gości folderów. Rozumiem, że muszę jakoś wyłączyć tę regułę dla podfolderów gości, ale jak mam to zrobić?

EDIT:

podaję cały plik .htaccess

+0

+1 To jest idealnie poprawne pytanie. – roosteronacid

Odpowiedz

14

Umieściłem htaccess w podfolderze i dodał RewriteEngine wyłączyć i to działa.

+0

To przyniesie efekt, jeśli przepisanie pojawi się w powyższym folderze. –

+0

To nie jest dobre rozwiązanie. Jeśli podfolder zawiera obcą aplikację, która sama używa .htaccess i zastępuje ją przy każdej aktualizacji, należy ją zmodyfikować za każdym razem. – StanE

+1

Istnieje rozwiązanie bez programu RewriteCond: http://stackoverflow.com/a/1848579/1854856 – StanE

0

Dodaj jeden z tych

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

Czy muszę zrestartować serwer? Zrobiłem to i to nie działa. –

+0

Zależy, gdzie są umieszczone reguły. Czy jest to htaccess lub główne pliki konfiguracyjne? Czy są to wszystkie twoje zasady? –

+0

@ Vinko - dziękuję za odpowiedź Załączam cały mój plik htaccess. Jak to zmienić, żeby zadziałało? –

Powiązane problemy