2012-01-11 2 views
27

У меня есть домен, который больше не будет использоваться. Я хочу перенаправить все от http://www.old.com/ до http://www.new.com/, независимо от того, на какой странице пользователь попытался получить доступ по адресу www.old.com.Перенаправить весь трафик на корень другого домена

Делать это:

RewriteEngine on 
Redirect 301/http://www.new.com/ 

отлично подходит для корня, но и другие страницы будут делать это:

http://www.old.com/cms -> http://www.new.com/cms

тогда я хочу, чтобы перейти к корню, независимо от того, какие.

ответ

53

От http://www.webconfs.com/how-to-redirect-a-webpage.php Я бы сказал, что вы можете использовать следующую конфигурацию

Не перенаправлять вложенные папки/файлы (как вы хотите): www.example.com/demo/ -> www.newexampledomain.com

Options +FollowSymLinks 
RewriteEngine on 
RewriteRule (.*) http://www.newdomain.com/ [R=301,L] 

Перенаправить на подпапок/файлов: www.example.com/demo/ -> www.newexampledomain.com/demo/

Options +FollowSymLinks 
RewriteEngine on 
RewriteRule (.*) http://www.newdomain.com/$1 [R=301,L] 
+0

А насчет VirtualHost? Если оба домена указывают на один и тот же сервер, что лучший выбор? Значение по умолчанию должно быть новым, плюс использовать псевдоним для старого, как в этом ответе https://stackoverflow.com/a/16011435/4458531? – NineCattoRules

+0

Это все еще передает переменные запроса. Добавить сингл? до конца, чтобы заменить запрос ничем. – Exit

13

Поместите этот код в ROOT .htaccess на www.old.com

Options +FollowSymLinks -MultiViews 
RewriteEngine on 

RewriteCond %{HTTP_HOST} ^(www\.)?old\.com$ [NC] 
RewriteRule^http://www.new.com/ [R=301,L] 

Это правило будет внешне перенаправлять все www.old.com/* к www.new.com/

+1

Спасибо. Это было решение, которое сработало для меня, поскольку я размещаю несколько доменов одного корня. – TheDarkIn1978

Смежные вопросы