2016-03-15 5 views
1

мне нужно изменить доменное имя моего сайта, и я буду использовать постоянное перенаправление 301. Я обнаружил, что эта установка на .htaccess будет делать работу:301 Перенаправление к изменившимся URLs

RewriteEngine on 
RewriteCond %{HTTP_HOST} ^example.com [NC,OR] 
RewriteCond %{HTTP_HOST} ^www.example.com [NC] 
RewriteRule ^(.*)$ http://www.new-example.com/$1 [L,R=301,NC] 

Но я также нужно изменить структуру всех URL-адресов от http://www.new-example.com/old/this-is-url1.html до http://www.new-example.com/this-is-url1.html.

Правило должно производить только URLs с каталога old на их псевдоним: www.new-example.com/old/...

И перенаправить их адрес без каталога old: www.new-example.com/

Не могли бы вы показать мне, какое правило перенаправления я должен использовать для .htaccess, чтобы это произошло?

ответ

0

Замените показанный код этого правила:

RewriteEngine on 

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

Очистить кэш браузера перед тестированием этого изменения.

+0

Этот код отлично работает для изменения всех моих ссылок на «старый» каталог, но мне также необходимо изменить все ссылки на новое доменное имя. Правильно ли использовать оба кода, мой первый код для перенаправления доменных имен и код для моего конкретного случая? – Haris

+0

Да, это работает отлично! Я использую: RewriteEngine на RewriteCond% {HTTP_HOST}^(www \.)? Example \ .com $ [NC] RewriteRule^(?: old /)?(.*)$ http: // new-example. com/$ 1 [L, R = 301, NC, NE] – Haris

+0

Этот код отлично работает! Я пытаюсь использовать rewriterule без www, чтобы иметь все мои ссылки без www и работает отлично, за исключением случая, когда я вхожу в новый домен с www. Когда я ввожу новое доменное имя с www, он не перенаправляет его на не-www. – Haris

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