.htaccess - не работает подкаталог - PullRequest
2 голосов
/ 06 марта 2012

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

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 вместо простого admin .

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

Спасибо

Ответы [ 2 ]

1 голос
/ 06 марта 2012

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

RewriteRule ^(admin)/(.*)$ $1/$2 [L]
1 голос
/ 06 марта 2012

Вместо большого количества правил перезаписи у вас должно быть одно правило, которое проталкивает все через 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]
...