2014-02-08 5 views
0
RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(\w+)/((\w+))?$ ?page=$1&other=$3 [L] 
RewriteRule ^(\w+)(/(\w+))?$ ?page=$1&other=$3 [L] 

Что это делает сделать так, если пользователь вводит в mysite.com/blarg и/blarg не реальный каталог или файл, он будет посылать thme to index.php? page = blarg..htaccess только не исключает, если оба условия выполнены

Но когда я иду в mysite.com/iphone (который является реальным каталогом, но не файл) Я направлен на mysite.com/iphone/?page=iphone & другое =

ответ

0

Это связано с тем, что наличие последней линии RewriteRule с RewriteCond. Имейте в виду, что RewriteCond применим только для следующих RewriteRule.

Используйте этот код:

RewriteEngine On 

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

RewriteRule ^(\w+)/((\w+))?$ ?page=$1&other=$3 [L] 
RewriteRule ^(\w+)(/(\w+))?$ ?page=$1&other=$3 [L] 
Смежные вопросы