Apache переписать исключить - PullRequest
1 голос
/ 15 января 2011

Как исключить «404.php» из соответствия этому правилу перезаписи?

RewriteRule ^([0-9]+)/?.*$ /news.php?sid=$1

Ответы [ 3 ]

0 голосов
/ 16 января 2011

Просто перехватите его с помощью предыдущего правила, для которого установлен последний флаг:

RewriteRule ^ (404.php) $ $ 1 [NC, L]

RewriteRule ^ ([0-9] +) /?.*$ /news.php?sid=$1 [NC, L]

0 голосов
/ 16 января 2011
 RewriteCond %{REQUEST_URI} !^/404\.php$ 
 RewriteRule ^([0-9]+)/?.*$ /news.php?sid=$1

RewriteCond используется для сопоставления URI запроса, к которым должно применяться следующее правило.

Подробнее о переменных заголовка, которые можно использовать в выражениях RewriteCond, можно узнать здесь: http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#rewritecond

0 голосов
/ 16 января 2011

Не проверено, но должно работать:

RewriteCond %{REQUEST_URI} !^/404\.php
RewriteRule ^([0-9]+)/?.*$ /news.php?sid=$1 
...