Удаление index.php из URL, но сохранение старых ссылок

Я пытаюсь удалить index.php из URL-адреса, который работает с примерами .htaccess, найденными на сайте EZPublish, и ForceVirtualHost=true. Проблема в том, что старые ссылки, указывающие на index.php, уже не работают (что проблематично при ссылках из поисковых систем).

Я пытался найти решение этой проблемы, используя правила перезаписи в .htaccess, но не могу заставить это работать. Некоторые из моих попыток:

Попытка 1

RewriteCond %{REQUEST_URI} ^/index.php
RewriteRule ^index\.php(.*) http://www.mysite.com$1

RewriteCond %{REQUEST_URI} !^/index.php
RewriteRule .* index.php [L]

Эта попытка вызывает бесконечный цикл.

Попытка 2

RewriteCond %{REQUEST_URI} ^/(index\.php)?(.*)$
RewriteRule %2 index.php [L]

RewriteRule .* index.php [L]

Тоже не работает :-(.

NB. 'RewriteRule .* index.php [L]' необходим, чтобы настройка виртуального хоста в EZPublish работала.

Любая помощь будет принята с благодарностью.

Вивьен


person Community    schedule 07.10.2009    source источник


Ответы (2)


в настройках/override/site.ini.append.php:

 [SiteAccessSettings]
 ForceVirtualHost=true
person Ronan    schedule 05.01.2011

Вместо этого попробуйте проверить строку запроса:

RewriteCond %{THE_REQUEST} ^GET\ /index\.php
RewriteRule ^index\.php/?([^/].*)?$ /$1 [L,R=301]

RewriteRule !^index\.php$ index.php [L]
person Gumbo    schedule 10.10.2009
comment
Привет, Гамбо, спасибо за ответ, но когда я пытаюсь сделать ваше предложение, я получаю внутреннюю ошибку сервера (которая, к сожалению, не отображается в журнале ошибок, поэтому у меня нет дополнительной информации о том, почему возникла ошибка). - person ; 14.10.2009