Много написано советов, но в большинстве примеров, что я нашел, редирект 301 дает ошибку 404
Но в конце концов нашел!!:
Для редиректа 301 вида "ваш_сайт/index.php" на "http://ваш_сайт/" :
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://ваш_сайт/ [R=301,L]
Для редиректа 301 вида "http://ваш_сайт/index.html" на "http://ваш_сайт/" :
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.html\ HTTP/
RewriteRule ^index\.html$ http://ваш_сайт/ [R=301,L]
Спасибо большое. Тоже долго искал и только благодаря Вашему примеру сделал.
ОтветитьУдалитьприсоединяюсь - работает =)
ОтветитьУдалитьспасибо спасибо, это рабочий пример 301 редирект index.php
ОтветитьУдалитьСпасибо, наверное единственное рабочее решение на весь рунет
ОтветитьУдалитькак быть в случае домена в зоне рф и настроенным sh404sef на вывод урлов страниц с русскими буквами?
ОтветитьУдалитьСпасибо, работает отлично.
ОтветитьУдалитьБинго!
ОтветитьУдалитьУра! Присоединяюсь! Сразу заработало. Спасибо! :)
ОтветитьУдалитьБлагодарю! Работает! Автору респект
ОтветитьУдалитьТот неловкий момент, когда для страниц в админке тоже срабатывает редирект и работать в ней становится невозможно
ОтветитьУдалитьСпасибо. Все работает!
ОтветитьУдалитьСпасибо! Справился за 5 сек, всё работает, переношу в блокнот.
ОтветитьУдалитьУрраа! Заработало! Се шарман, мерси боку=)
ОтветитьУдалитьRewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
ОтветитьУдалитьRewriteRule ^index\.php$ http://{HTTP_HOST}/ [R=301,L]
более правильно )
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php(.*)\ HTTP/
ОтветитьУдалитьRewriteRule ^index\.php(.*)$ http://{HTTP_HOST}/ [R=301,L]
Так будет еще лучше, потому что встречаются и такие ссылки как:
/index.php/component/k2/itemlist/tag/Brink.html и тп
Но всё равно плохо www.site.ru/index.php/component/ редиректит на www.site.ru/, а нужно www.site.ru/component/
ОтветитьУдалитьтак подправьте правило немного и все получится
Удалить