Снова не работает.
Давайте я еще раз попробую объяснить как всё устроено, возможно это поможет решить проблему.
Сейчас внутри корня сайта находится свой файл .htaccess, а внутри директории dir - свой.
В него я и добавляю эти редиректы. Хотя пробовал пихать их и в основной, тоже безуспешно.
При этом редиректы на сервере работают, кое-какие предлагаемые примеры также работали, но совсем не так, как ожидается...
Опять не работает вообще.
Как будто нет такого правила в файле!
RewriteBase /dir/ RewriteRule ^dir/index.php(?:/(.*))?$ /dir/$1 [L,R=301]
до этого ставил в тот, который внутри /dir/
только что попробовал вставить в корень сайта.
Одинаково не работает почему то..
Но в таком виде
RedirectMatch 301 ^/dir/index.php(?:/(.*))?$ /dir/$1
это не работает вообще :(
ни для
/dir/index.php
/dir/index.php/pathtopage.html
Редирект не происходит вообще и адреса так и остаются без изменений.
А это точно редиректит из адресов с index.php на такие же но без него?
Сейчас получаю
отсюда (и аналогичных ссылок)
www.sitename.com/dir/index.php/pathtopage.html
сюда всё идет www.sitename.com/index.php
И аналогично коду webjey:
Почему то пропускает без редиректа такой адрес
www.sitename.com/dir/index.php---------- Добавлено 02.04.2015 в 19:20 ----------
Извините в регулярке не силен :(
Этот Ваш код будет работать и со / и без него, т.е. неважно где будет стоять index.php в адресе?
RewriteCond %{REQUEST_URI} /index.php RewriteRule ^(.*)$ http://site.ru/ [R=301,L]
webjey, благодарю за ответ, но конкретно это тоже не работает.
У меня чуть выше указано уже
RewriteBase /dir/
А ваш код
RewriteRule ^(.*)index\.(html|php)$ http://%{HTTP_HOST}/$1 [R=301,L]
www.sitename.com/dir/index.php
А правильные адреса вида
www.sitename.com/dir/pathtopage.html
наоборот редиректит все в корень - www.sitename.com