В настоящее время у меня есть веб-сайт с функцией «нескольких магазинов», что по сути означает, что один сайт обрабатывает несколько доменов. В этом случае у меня 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]
Поместите это в .htaccess в корневой папке сайта. При размещении в другом месте требуется небольшая настройка правил.
Эти правила будут работать для предоставленных вами доменных имен (например, 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]