Объединение 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>
Другие вопросы по тегам