2013-11-08 2 views
1

Эй, я пытаюсь сделать mod-rewrite для дружественных поисковых URL-адресов, которые разрешают 404-страничку, если файл не найден. Когда я заставляю его работать с каталогами, которые не разрешают файл (т. Е. Поиск/.php), потому что совпадение не найдено, оно не работает, когда найдено совпадение.Mod_rewrite до 404 страницы, если матч не найден

В основном мне нужно, чтобы он работал, когда вы переходите к url ​​/ search /, если есть индексная страница, а url/search/filename следует разрешить filename.php внутри каталога поиска. Кто-нибудь знает, как это сделать?

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule .? - [S2] #file not found, skip to 404 
RewriteRule ^([^\.]+)$ $1.php [NC,L] 
RewriteRule .? - [S1] #file found, ignore redirect to 404 
RewriteRule (.*) 404.php?file=$1 

ответ

1

Почему не просто:

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule ^([^\.]+)$ $1.php [NC,L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule (.*) 404.php?file=$1 [L] 

вместо всех этих скачет?

+0

безупречный, спасибо! – Jade

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