.htaccess перенаправление index.php в корень влияет на вход администратора

Я хотел бы перенаправить страницу www.mysite.com/index.php на www.mysite.com/, чтобы предотвратить проблемы с дублированием контента, но это вызывает проблему, из-за которой я не могу войти в бэкэнд, потому что это перенаправляет http://www.example.com/administrator/index.php на http://www.example.com/administrator/. Я использую следующее

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^/]+/)*index\.(html?|php)\ HTTP/     
RewriteRule (([^/]+/)*)index\.(html?|php)$ http://www.example.com/$1 [R=301,L]

но я должен был закомментировать это, чтобы войти. Пожалуйста, кто-нибудь может показать мне, где я иду не так?

* Я нашел сообщение о похожей, но не идентичной проблеме, предлагая

RewriteCond %{REQUEST_URI} !^/administrator could go in the middle, would that be right? Sorry, new to all this :) 

1 ответ

Да, вы хотите, чтобы ваша входная цепочка выглядела так:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^/]+/)*index\.(html?|php)\ HTTP/
RewriteCond %{REQUEST_URI} !^/administrator/
RewriteRule (([^/]+/)*)index\.(html?|php)$ http://www.example.com/$1 [R=301,L]

Вы в значительной степени поняли это правильно. Каждое из условий RewriteCond по своей сути AND объединено и применяется к первому RewriteRule после них. Вы можете иметь два RewriteCond в любом порядке, и оба должны быть выполнены, чтобы правило было применено.

Другие вопросы по тегам