.htaccess mod_rewrite предотвращает обслуживание определенных файлов - PullRequest
0 голосов
/ 09 марта 2010

Я успешно использую mod_rewrite для отображения сайта по своему желанию ... однако я перенес папку 'mock-up' в корневой каталог, и при реализации этих правил для сайта некоторые файлы обслуживается в папке ^ pdfs:

RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]

(старый каталог)

RewriteRule ^redesign_03012010/mock-up/([^/]+)/([^/]+)$ /redesign_03012010/mock-up/index.php?page=$1&section=$2 [PT]
RewriteRule ^redesign_03012010/mock-up/([^/]+)$ /redesign_03012010/mock-up/index.php?page=$1 [PT,L]

(новый каталог)

RewriteRule ^([^/]+)/([^/]+)$ /index.php?test=1&page=$1&section=$2 [PT]
RewriteRule ^([^/]+)$ /index.php?test=1&page=$1 [PT,L]

... ^ pdfs (он же / pdfs /) не обслуживает файлы ... есть предложения?

1 Ответ

0 голосов
/ 09 марта 2010

[L] флаг просит mod_rewrite прекратить обработку текущего набора правил, а не всего файла .htaccess, поэтому следующие строки не делают то, что вам нужно:

RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]

Вам необходимо исключить существующие файлы из обработки с помощью mod_rewrite. Попробуйте использовать это:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/([^/]+)$ /index.php?test=1&page=$1&section=$2 [PT]
RewriteRule ^([^/]+)$ /index.php?test=1&page=$1 [PT,L]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...