301 проблема соответствия перенаправления - PullRequest
1 голос
/ 04 февраля 2010

Хорошо, я обслуживаю два домена из одной коробки. Домены:

www.old.org и www.new.com. Как и сейчас, все файлы и каталоги одинаковы на обоих доменах.

Я хочу сделать так, чтобы, ЕСЛИ кто-то зашел на www.old.org/folder_a/file_b.php, он получил 301 сайт www.new.com/folder_a/file_b.php.

Я уже пробовал в htaccess:

RedirectMatch 301 ^ / http://www.new.com/

Но это дает цикл 301, потому что условие 301 все еще применяется после того, как 301 принят. Я думаю, что хочу сделать что-то, что использует rewritecond% {HTTP_HOST} ^. * Old.org $, так что будут затронуты только URL на old.org или www.old.org, но я не уверен, как это сделать.

Ответы [ 2 ]

0 голосов
/ 04 февраля 2010

Что-то подобное должно сделать:

RewriteCond %{http_host} ^www\.old\.org$ [NC]
RewriteRule ^/(.*) http://www.new.com/$1 [R=301]
0 голосов
/ 04 февраля 2010

Если у вас есть доступ к конфигам Apache vhost, используйте их вместо .htaccess:

<VirtualHost *:80>
    ServerName www.old.org
    Redirect permanent / http://www.new.com/
</VirtualHost>

Если вы действительно должны использовать .htaccess, выполните следующее:

RewriteEngine On
RewriteCond %{SERVER_NAME} =www.old.org [NC]
RewriteRule (.*) http://www.new.com/$1 [R=301,L]
...