Я установил домен, и я хотел бы указать этот домен на другом веб-сервере.
скажем:
домен 1: www.test.com на сервере 1
домен 2: www.test1.com на сервере 2
Я хотел бы перенаправить www.test1.com на www.test.com, и я попытался сделать это с помощью настройки виртуального хоста на сервере 2 и mod_rewrite.
Виртуальный хост выглядит так:
<virtualhost XXX.XXX.XXX.XXX:80>
ServerName www.test1.com
ServerAlias test1.com *.test1.com
RewriteEngine On
RewriteCond %{HTTP_HOST} (.*)\test\.com
RewriteRule ^(.*) http://%1test.com/$1 [R=301,L]
</VirtualHost>
Все отлично работает кроме http://test1.com не перенаправляет.
Вопрос 1: Как мне перенаправить все запросы (все поддомены), которые входят в http://test1.com к http://www.test.com используя mod_rewrite.
Вопрос 2: мне нужно указать каталог в этом случае для виртуального хоста?
Вопрос 3: мне нужен ServerAlias или здесь он контрпродуктивен?
ОБНОВИТЬ:
Закончился выполнением 301 со следующей настройкой
<virtualhost <ip>:80>
ServerName test1.com
ServerAlias www.test1.com
Redirect 301 / http://www.test.com
</VirtualHost>
DocumentRoot не требуется. Вы можете без проблем настроить такие хосты:
<VirtualHost xx.xx.xx.xx:90>
ServerName domain.tld
ServerAlias www.domain.tld
RedirectPermanent / http://www.domain2.com/
</VirtualHost>
Это перенаправит все запросы на основной сайт, а также во вложенные папки. Например. www.domain.tld / foo / bar будет перенаправлен на www.domain2.com/foo/bar
ServerAlias требуется только в том случае, если вам нужно несколько имен хостов .. Например, www и без www.
Попробуйте что-нибудь подобное на своем виртуальном хосте:
<Virtualhost XXX.XXX.XXX.XXX:80>
ServerName www.test1.com
ServerAlias *.test1.com
Redirect 301 / http://www.test.com
</VirtualHost>
Очень простой и должен передавать что угодно, независимо от того, к какому URL-адресу пользователь пытается получить доступ с test1.com на test.com.
В вашем примере конфигурации вы перепутали .com и .de. Может в этом проблема?
Вопрос 1:
RewriteCond %{HTTP_HOST} ^.*\.test1\.de [NC]
RewriteRule ^(.*)$ http://www.test.de/$1 [L,R=301]
Вопрос 2:
Я не уверен на 100%, нужен DocumentRoot или нет, но думаю, что нет.
Вопрос 3: Да, вам нужен псевдоним * .test1.com.
Он мог бы работать без него, если этот VirtualHost является вашим первым VirtualHost.
Затем он получит все запросы, которые не соответствуют другим VirtualHosts, поскольку это значение по умолчанию.
Однако его проще настроить.