... ответ MAYBE-dup действительно решает мою проблему, но вопрос - нет.
Сделайте ДВЕ вещи:
Сохранить поддомен раньше
Продолжить путь после
Я не могу найти ОДИН .htaccess
или конфигурация Apache, которая делает ОБА в любом месте SE или в другом месте в Интернете:
Через Apache .htaccess
переписать, перенаправить старый домен, но оставить ОБЕИХ тот же самый subdomain
И path/after
.
Из:
samesubdomain.
domain1.tld1
/same/path
Кому:
samesubdomain.
domain2.tld2
/same/path
У меня много поддоменов И конечных адресов. Я переношу старый сайт, но мои старые подписки и их страницы должны работать в новом домене.
Не-но-близкие дубликаты: (Ответы касаются моей проблемы, но сам вопрос не описывает мою проблему, но это также решило мою проблему.)
Перенаправить поддомен с подстановочными знаками на тот же поддомен в другом домене
Любезно предоставлено МОЖЕТ БЫТЬ-дублированный ответдля поддомена у меня в настоящее время есть:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(.+\.)?domain1.com$ [NC]
RewriteRule ^ http://%1domain2.com%{REQUEST_URI} [R=301,L]
... теперь мне нужно добавить the/path
половина БЕЗ конфликтов с этим кодом.
Хотя связанный вопрос конкретно не заявляет об этом, код фактически копирует URL-путь (и любую строку запроса). Хотя по общему признанию ответов нет в каком-либо объяснении.
Предположения:
domain1.tld1
(без поддомена) не перенаправляет на domain2.tld2
.В верхней части вашего корня .htaccess
файл:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^([^.]+)\.domain1\.tld1 [NC]
RewriteRule (.*) https://%1.domain2.tld2/$1 [R=302,L]
В RewriteCond
Директива захватывает поддомен из запроса. В %1
обратная ссылка в RewriteRule
замена - это обратная ссылка на захваченный поддомен (т.е. ([^.]+)
).
В $1
обратная ссылка содержит URL-путь, захваченный RewriteRule
шаблон, т.е. (.*)
.
Обратите внимание, что я специально пропустил завершающий $
(привязка конца строки) на CondPattern чтобы соответствовать полному доменному имени, оканчивающемуся точкой.
Любая строка запроса передается без изменений.
Обратите внимание, что в настоящее время это 302-е (временное) перенаправление. Всегда проверяйте с 302, чтобы избежать проблем с кешированием. Если вы ранее тестировали 301s, вам нужно будет очистить кеш браузера.
RewriteEngine On RewriteCond %{HTTP_HOST} ^(.+\.)?domain1.com$ [NC] RewriteRule ^ http://%1domain2.com%{REQUEST_URI} [R=301,L]
... теперь мне нужно добавить половину пути / БЕЗ конфликта с этим кодом.
Код уже содержит часть URL-пути. Вот что %{REQUEST_URI}
часть находится в RewriteRule
замена строка. В REQUEST_URI
Переменная сервера содержит полный URL-путь. Это просто еще один способ сделать то же самое, что и выше - я использовал обратную ссылку $1
вместо. (Обратите внимание, что REQUEST_URI
серверная переменная содержит префикс косой черты, тогда как использованная мной обратная ссылка не содержит, следовательно, разница в косых чертах в замена строка.)
В этом коде отсутствует обратная косая черта на буквальной точке в .com
.
Обратите внимание, что это решение делает субдомен по желанию. Он перенаправит domain1.com
(без поддомена) на domain2.com
.