301 редирект из папки

12
olll
На сайте с 07.11.2006
Offline
116
2910

Привет всем неравнодушным!

Такая проблема. Нужно сделать редирект 301 с домена site.ru на домен site.com.

У меня сайт состоит из двух частей:

  • первая часть на простых файлах - и тут проблем не возникло в редиректе, примеров в сети масса.
  • вторая часть - на статейном движке, который установлен в дерриктории site.ru/s/

И вот со второй частью редирект не работает. Дело в том, что в папке /s/ уже есть свой .htaccess. И я думаю, что проблема в этом.

вот его содержание:

<IfModule mod_php4.c>
php_value session.use_only_cookies 1
php_value session.use_trans_sid 0
</IfModule>

<IfModule mod_rewrite.c>
Options +FollowSymLinks

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l

RewriteRule .* index.php [QSA,L]
</IfModule>

Что нужно прописать в корневом файле, или в файле каталога /s/, чтобы был редирект с http://site.ru/s/internet/kak-zaschitit-pk-ot-virusov.php на http://site.com/s/internet/kak-zaschitit-pk-ot-virusov.php ?

[umka]
На сайте с 25.05.2008
Offline
456
#1
olll:
или в файле каталога /s/

Redirect / http://site.com/

Лог в помощь!
olll
На сайте с 07.11.2006
Offline
116
#2
'[umka:
;11204462']Redirect / http://site.com/

Не работает. Прописываю в файле каталога /s/ то, что Вы написали, и страницы не грузятся совсем. Фаерфокс выводит ошибку:

Неверное перенаправление на странице

Firefox определил, что сервер перенаправляет запрос на этот адрес таким образом, что он никогда не завершится.
Эта проблема может возникать при отключении или запрещении принятия кук.

Я попробовал заменить на RewriteRule / http://site.com/ [L,R=301]

И уже было обрадовался, в фаерфоксе переадресация случилась. Однако, проверил через сервисы проверки ответа сервера, и страница выдаёт ответ 200.

Потом решил проверить в других браузерах и в интернет експлорере переадресация почему то не работает.

Так же не работает переадресация каталогов статей, типа http://site.ru/s/internet-kursy/ на http://site.com/s/internet-kursy/ ни в одном из браузеров.

RO
На сайте с 13.07.2009
Offline
88
#3

ну так выбросьте .htaccess из папки s и пропишите суда свой, который будет делать редирект всех запросов. или же, в файле /s/index.php в самое начало скрипта прописать

header('HTTP/1.1 301 Moved Permanently');

header('Location: http://site.com'.$_SERVER['REQUEST_URI']);

siv1987
На сайте с 02.04.2009
Offline
427
#4
olll:
Не работает. Прописываю в файле каталога /s/ то, что Вы написали, и страницы не грузятся совсем. Фаерфокс выводит ошибку:

Редирект работает, но там идет зацикливание, потому что новый домен смотрит в ту же папку. Вместо простого редиректа, замените на

RewriteCond %{HTTP_HOST} !site\.com

RewriteRule ^(.*) http://site.com/$1 [R=301,L]

(добавить после RewriteEngine On)

olll
На сайте с 07.11.2006
Offline
116
#5
siv1987:
Редирект работает, но там идет зацикливание, потому что новый домен смотрит в ту же папку. Вместо простого редиректа, замените на
RewriteCond %{HTTP_HOST} !site\.com
RewriteRule ^(.*) http://site.com/$1 [R=301,L]
(добавить после RewriteEngine On)

Поместил Ваш код в файл, который в папке /s/

<IfModule mod_php4.c>
php_value session.use_only_cookies 1
php_value session.use_trans_sid 0
</IfModule>

<IfModule mod_rewrite.c>
Options +FollowSymLinks

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l

RewriteRule .* index.php [QSA,L]
</IfModule>

RewriteEngine on

RewriteCond %{HTTP_HOST} !site.com
RewriteRule ^(.*) http://site.com/$1 [R=301,L]

В результате происходит переадресация со страницы http://site.ru/s/internet/kak-zaschitit-pk-ot-virusov.php на страницу http://site.com/index.php

Ещё я не говорил. Не знаю, важно ли это, но оба домена прикручены на хостинге к одной папке. Т.е. все файлы на обоих хостингах одинаковые.

siv1987
На сайте с 02.04.2009
Offline
427
#6

Написано же добавить после RewriteEngine on

зачем вы вписали директиву второй раз, если она уже есть? Я специально это написал, чтобы редирект оказался перед остальными реврайтами, но вы все равно умудрились вставить в конце.

olll
На сайте с 07.11.2006
Offline
116
#7
siv1987:
Написано же добавить после RewriteEngine on
зачем вы вписали директиву второй раз, если она уже есть? Я специально это написал, чтобы редирект оказался перед остальными реврайтами, но вы все равно умудрились вставить в конце.

Я видел, что Вы написали. Просто я привёл цитату одной из моих неудачных попыток.

Я пробовал и так

<IfModule mod_php4.c>

php_value session.use_only_cookies 1
php_value session.use_trans_sid 0
</IfModule>

<IfModule mod_rewrite.c>
Options +FollowSymLinks

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l

RewriteRule .* index.php [QSA,L]
</IfModule>

RewriteCond %{HTTP_HOST} !site.com
RewriteRule ^(.*) http://site.com/$1 [R=301,L]

и так

<IfModule mod_php4.c>

php_value session.use_only_cookies 1
php_value session.use_trans_sid 0
</IfModule>

<IfModule mod_rewrite.c>
Options +FollowSymLinks

RewriteEngine on

RewriteCond %{HTTP_HOST} !site.com
RewriteRule ^(.*) http://site.com/$1 [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l

RewriteRule .* index.php [QSA,L]
</IfModule>

Во втором случае вообще выдаётся ошибка 404

siv1987
На сайте с 02.04.2009
Offline
427
#8
olll:
Просто я привёл цитату одной из моих неудачных попыток.

Зачем приводить если это не то что я написал? Приводите только то, что по инструкции, потом уже можете писать и свои неудачные попытки.

olll:
Во втором случае вообще выдаётся ошибка 404

Что значить отдается 404, редирект происходит или нет?

olll
На сайте с 07.11.2006
Offline
116
#9

Да, редирект происходит (адрес в строке браузера меняется). Но при этом не работает сам движок сайта. Страницы не отдаются движком. Выдают код 404.

siv1987
На сайте с 02.04.2009
Offline
427
#10

Сравните урл до и после редиректа, не упускаются ли там какие-то пути или переменные.

У меня есть некоторые подозрения судя по

olll:
В результате происходит переадресация со страницы http://site.ru/s/internet/kak-zaschi...ot-virusov.php на страницу http://site.com/index.php
12

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