У меня два домена для веб-сайта (мы используем Apache), example.com
и example.org
. Веб-сайт отвечает на поддомен с подстановочными знаками для обоих из них. Однако я хочу, чтобы .com был каноническим доменом. Под этим я подразумеваю, что хочу перенаправить (301) все на .com, но сохранить поддомен. Например.
example.org => example.com
sub.example.org => sub.example.com
Я недостаточно разбираюсь в регулярных выражениях, чтобы понять, как это настроить. Может кто-то указать мне верное направление?
Попробуй это:
<VirtualHost *:80>
ServerName example.org
ServerAlias *.example.org
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(.*\.)?example\.org$
RewriteRule ^/(.*)$ http://%1example.com/$1 [R=301,L]
</VirtualHost>
... затем настройте другой виртуальный хост (тот, который обслуживает контент для example.com) с ServerName example.com
и ServerAlias *.example.com
.
Изменить: сделало сопоставление поддоменов необязательным, добавив "?" квантификатор