2016-03-18 2 views
1

Я собираюсь изменить свое доменное имя, но также нужно изменить и одно имя папки в структуре URL. Я хочу, чтобы «www.example.com/name» стал «new-example.com/new-name».301 перенаправление на новый домен и новую папку имен

У меня есть этот код для .htaccess:

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

, но этот код удалить «имя» папку на переадресованные ссылки. Как я могу изменить имя папки и не удалять ее?

ответ

0

Попробуйте это правило в качестве первого правила:

RewriteEngine On 

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

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

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

+0

Этот код перенаправляет каждый URL на «new-example.com/new-name», а не только URL-адреса, имеющие папку «имя». Например, если я вхожу на www.example.com/name2, я получаю new-example.com/new-name/name2 – Haris

+0

Теперь перенаправляются только URL-адреса, содержащие папку «name». Если я использую например www.example.com/name2, я могу получить www.example.com/name2 без перенаправления вообще. – Haris

+0

Мне не нужно изменять только URL-адреса, которые содержат папку «name» в папке «name2». Переназначьте все URL-адреса от старого имени домена до нового имени домена, и если в структуре URL-адреса есть папка «name», измените ее на «name2». – Haris

1

Будет ли это работать?

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

Нет, это не работает – Haris

+0

Этот код полностью не перенаправлен – Haris

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