.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]