Не работает редирект

Fi9hter
На сайте с 05.08.2008
Offline
205
614

Нужен редирект с /index.php на http://site.ru/

Пробовал писать и

Redirect 301 /index.php http://site.ru/ и

RedirectPermanent /index.php http://site.ru/

В итоге на сайте даже с корня сразу выходит сообщение

Moved Permanently

The document has moved here.

и ссылка here ведет на http://site.ru/

Что-то не так делаю? Подскажите как лучше редирект сделать. Гугл вместо http://site.ru/ в индексе заменил на http://site.ru/index.php и позиции все слетели.

M
На сайте с 17.04.2008
Offline
88
MBo
#1

зацикливание происходит, с index.php на index.php, лучше сделать редирект вот так:

нужно прописать в index.php в самом начале файла, можно сразу после <?php


if($_SERVER['REQUEST_URI']=='/index.php'){header('HTTP/1.x 301 Moved Permanently');header('Location: http://test.com/');exit();}
Fi9hter
На сайте с 05.08.2008
Offline
205
#2

А гугл склеит страницы с таким редиректом?

Skom
На сайте с 02.12.2006
Offline
165
#3

У меня склеил.

Cras amet qui numquam amavit quique amavit cras amet
M
На сайте с 17.04.2008
Offline
88
MBo
#4

конечно склеит, нет различия в способах инициации редиректа (.htaccess или скрипт),

бот или браузер в обоих случаях получат ответ сервера с заголовками, типа,

HTTP/1.x 301 Moved Permanently

Date: Wed, 12 Aug 2009 14:15:04 GMT

Server: Apache/2.2.4 (Win32) mod_ssl/2.2.4 OpenSSL/0.9.8d PHP/5.2.4

Location: http://host.com/

Content-Length: 0

Keep-Alive: timeout=5, max=100

Connection: Keep-Alive

Content-Type: text/html; charset=windows-1251

Fi9hter
На сайте с 05.08.2008
Offline
205
#5
MBo:
зацикливание происходит, с index.php на index.php, лучше сделать редирект вот так:
нужно прописать в index.php в самом начале файла, можно сразу после <?php

if($_SERVER['REQUEST_URI']=='/index.php'){header('HTTP/1.x 301 Moved Permanently');header('Location: http://test.com/');exit();}

вообще 500 ошибка вылетает после этого

FeoOne
На сайте с 27.12.2008
Offline
32
#6

RewriteCond %{QUERY_STRING} ^$
RewriteRule ^index\.php$ / [R=301]

В .htaccess

Естественно, mod_rewrite должен быть включён, делается это так:

RewriteEngine On
Options +FollowSymLinks
RewriteBase /

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий