.htaccess - не работает подкаталог

Я использую эти правила:

RewriteEngine on

RewriteRule ^robots.txt$ - [L]
RewriteRule ^favicon.ico$ - [L]

RewriteRule ^([^(/\.)]+)/([^(/\.)]+)/([^(/\.)]+)/([^(/\.)]+)/?$ index.php?id=$1&id2=$2&id3=$3&id4=$4 [QSA,L] 
RewriteRule ^([^(/\.)]+)/([^(/\.)]+)/([^(/\.)]+)/?$ index.php?id=$1&id2=$2&id3=$3 [QSA,L] 
RewriteRule ^([^(/\.)]+)/([^(/\.)]+)/?$ index.php?id=$1&id2=$2 [QSA,L]
RewriteRule ^([^(/\.)]+)/?$ index.php?id=$1 [QSA,L]

на моем веб-презентации работает хорошо, но когда я хочу перейти в раздел администратора и введите просто / admin, так что я перенаправлен на admin /? id = admin (плохая страница) - для отображения формы входа в систему, я должен набрать /admin/index.php вместо простого администратора.

Не могли бы вы помочь мне, как это исправить?

Спасибо

2 ответа

Решение

Итак, я решил это следующим образом:

RewriteRule ^(admin)/(.*)$ $1/$2 [L]

Вместо большого количества правил перезаписи у вас должно быть одно правило, которое проталкивает все через index.php, а затем используйте PHP для управления этими страницами вместо использования $_SERVER переменные.

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]

Это всего лишь мой совет, однако, в ответ на ваш оригинальный вопрос, попробуйте это как первое правило:

RewriteRule ^/admin$ index.php?id=admin [QSA,L]
Другие вопросы по тегам