Объединение Apache ServerAlias и 301 Redirects
Я ссылался на этот вопрос, но я не уверен, что мне ясно, как это работает в данной ситуации:
У меня есть клиент с двумя брендами, которые в настоящее время онлайн, как это:
Brand A (site 1) Brand B (site 2)
--- ---
site 1 pages site 2 pages
Теперь у них создан новый сайт, который объединяет контент обоих сайтов и объединяет два бренда в один:
Brand Unified (site 3)
---
site 3 pages
Ясно, что есть 301 редирект, который я хочу разместить для каждого исходного сайта после того, как я обновлю записи A для каждого домена. Тем не менее, новый сайт представляет собой пользовательскую тему WordPress, и WP допускает только один домен для каждой установки. Это оставляет меня в ситуации, когда я могу назначить исходный TLD, скажем, из Brand A в качестве URL сайта в WordPress, а затем перенаправить домен Brand B в A.
Я думал, что я буду использовать серверный блок, как это на сайте Apache conf:
<VirtualHost *:80>
ServerName site1.com #site1.com now points directly here
ServerAlias site2.com #site2.com points directly but redirects
ServerAdmin admin@brandAsite.com
DocumentRoot /var/www/newsite
Итак, если в этой конфигурации нет ничего плохого, что произойдет, если я попытаюсь реализовать перенаправления 301 для ссылок site1 и site2? В частности, поскольку site2.com теперь указан как псевдоним site1.com, могу ли я по-прежнему эффективно перенаправлять 301 в .htaccess
файл в /var/www/newsite/
каталог или ServerAlias мешают этому? Мне интересно, будет ли псевдоним возвращен на site1.com, и поэтому правила 301 не сработают?
1 ответ
Если вы можете настроить Apache Conf, зачем усложнять ситуацию и помещать перенаправления (или что-то еще) в .htaccess
файлы? Вы, кажется, назначаете site2.com для /var/www/newsite только с целью использования .htaccess
и ничего больше. Я бы сказал, что все просто в одном месте:
NameVirtualHost *:80
<VirtualHost *:80>
ServerName site1.com
DocumentRoot /var/www/newsite
</VirtualHost>
<VirtualHost *:80>
ServerName site2.com
# Specifically mapped redirects
Redirect permanent /foo/ http://site1.com/new-foo/
# Root redirect (if no other cases above match)
Redirect permanent / http://site1.com/
</VirtualHost>