2009-10-05 2 views
6

У меня есть файл .htaccess в моем корне сайта, выглядит следующим образом:Как отключить RewriteRule для одной подкатегории?

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] 

Но когда я типа:

mydomain.pl/guests

Я хотел бы обычно отправляйтесь к фактическим посетителям папки. Я понимаю, что мне нужно как-то отключить это правило для гостевой подпапки, но как мне это сделать?

EDIT:

Я включил весь файл .htaccess

+0

+1 Это совершенно правильный вопрос. – roosteronacid

ответ

14

Я поставил HTAccess в подпапках и добавил RewriteEngine Off, и она работает.

+0

Это не работает, если переписывание происходит в папке выше. –

+0

Нехорошее решение. Если вложенная папка содержит внешнее приложение, которое само по себе использует .htaccess и перезаписывает его при каждом обновлении, каждый должен изменять его каждый раз. – StanE

+1

Существует решение без RewriteCond: http://stackoverflow.com/a/1848579/1854856 – StanE

0

Добавить один из этих

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

Нужно ли мне перезагружать сервер? Я сделал это, и он не работает. –

+0

Зависит от того, где находятся правила. Это htaccess или основные файлы конфигурации? Кроме того, это все ваши правила? –

+0

@Vinko - Спасибо за ответ. Я включил весь файл htaccess. Как изменить его, чтобы он работал? –

Смежные вопросы