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

перенаправление домена с виртуальным хостом

Я установил домен, и я хотел бы указать этот домен на другом веб-сервере.

скажем:

домен 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, поскольку это значение по умолчанию.
Однако его проще настроить.