У клиента есть сайт expressionengine, и он хочет, чтобы файл index.php был удален. Если вы сделаете это само по себе, это снизит рейтинг его сайтов в SEO, поскольку изменит все URL-адреса. Итак, мы хотим сохранить количество ссылок и количество репостов в социальных сетях, добавив 301 ко всем страницам.
Я знаю, как удалить index.php, и я знаю, как перенаправить (я думаю), но когда я использую их оба, сервер вызывает цикл перенаправления. Моя логика искажена. Что мне здесь не хватает?
Вот с чем я работаю:
# Redirect attempt
Redirect 301 /index.php/feature/article/ http://domain.com/feature/article/
# EE index.php rewrite
RewriteCond $1 !^(index\.php|js|path\.php|press_releases|rear|robots\.txt|text\.html|themes) [NC]
RewriteRule ^(.*)$ /index.php/$1 [L]
1 ответ
Вы хотите перенаправить, только если фактический запрос относится к URL-адресу /index.php/
. Измените свою директиву Redirect
на это:
# Redirect attempt
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php
RewriteRule ^/?index.php/feature/article/(.*)$ http://domain.com/feature/article/$1 [R=301,L]
Это условие соответствует фактическому запросу, полученному сервером, а не URI (который может быть переписан вторым правилом).
Похожие вопросы
Новые вопросы
php
PHP — это открытый, мультипарадигмальный, динамически типизированный и интерпретируемый язык сценариев, изначально разработанный для веб-разработки на стороне сервера. Используйте этот тег для вопросов о программировании на языке PHP.