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

Объединение Apache ServerAlias ​​и 301 редиректа

Я сослался этот вопрос но я не уверен, понимаю ли я, как это работает в этой ситуации:

У меня есть клиент с двумя брендами, которые сейчас в сети вот так:

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, скажем, бренда A в качестве URL-адреса сайта в WordPress, а затем перенаправить домен бренда B на A.

Я подумал, что буду использовать такой серверный блок в conf сайта Apache:

<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 не сработают?

Если вы можете настроить 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>