Назад | Перейти на главную страницу

301 редирект с несколькими доменами

В настоящее время у меня есть веб-сайт с функцией «нескольких магазинов», что по сути означает, что один сайт обрабатывает несколько доменов. В этом случае у меня domain-a.com и domain-b.com оба указывают на один магазин. В настоящее время у них есть блог на domain-a.com/blog, доступ к которому можно получить с обоих сайтов.

Недавно мы хотели создать отдельный блог для каждого домена, поэтому переместили его из domain-a.com/blog к blog.domain-a.com, и настройте 301 редирект в файле htaccess для пересылки трафика от domain-a.com/blog на новое место. Проблема в том, что это также перенаправляет входящий трафик domain-b.com/blog к blog.domain-a.com. Используя только .htaccess, можно ли domain-a.com/blog перенаправить на blog.domain-a.com и domain-b.com/blog перенаправить в совершенно другое место, скажем domain-b.com/newBlog?

РЕДАКТИРОВАТЬ: конец последнего абзаца был изменен для ясности

Эти правила сделают свою работу:

RewriteEngine On
RewriteBase /

RewriteRule ^blog$ http://blog.%{HTTP_HOST}/ [NC,R=301,L]
RewriteRule ^blog/(.*)$ http://blog.%{HTTP_HOST}/$1 [NC,R=301,L]
  1. Поместите это в .htaccess в корневой папке сайта. При размещении в другом месте требуется небольшая настройка правил.

  2. Эти правила будут работать для предоставленных вами доменных имен (например, domain-x.com => blog.domain-x.com). Если доменное имя отличается (например, www.domain-x.com) затем для перенаправления на blog.domain-x.com эти правила необходимо изменить.


ОБНОВИТЬ: На основе обновленных требований:

RewriteEngine On
RewriteBase /

# rule for domain-A.com/blog
RewriteCond %{HTTP_HOST} =domain-a.com [NC]
RewriteRule ^blog(/?|/(.*))$ http://blog.domain-a.com/$2 [NC,R=301,L]

# rule for domain-B.com/blog
RewriteCond %{HTTP_HOST} =domain-b.com [NC]
RewriteRule ^blog(/?|/(.*))$ http://domain-b.com/newBlog/$2 [NC,R=301,L]