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

Нет, по крайней мере, в пространстве IP.

Если они не будут на той же подсети (xxx.yyy.zzz.1 и xxx.yyy.zzz.2), то эти два компьютера потребуют, чтобы маршрутизатор соединил их. Если они находятся на той же подсети затем, переключатель - все, что требуется.

Учитывая простоту Вас вопрос означает, что мы предполагаем слепой, я сначала рекомендовал бы проверить, чтобы видеть, имеют ли A и C оба "шлюз по умолчанию", который соответствует IP локального маршрутизатора для каждой из их подсетей. И я проверил бы на брандмауэринг (оба программных и аппаратных обеспечения) одновременно.

4
задан 6 August 2010 в 02:29
2 ответа

Чтобы быть довольно честным с Вами, лучший approch i видит для этого, был бы то, если Вы обычно устанавливаете свой основной домен как это:

<VirtualHost *:80>
    ServerName www.example.com
    DocumentRoot /www/domain 
</virtualhost>

Затем Вы создаете новый virtualhost, который будет содержать все домены, которые Вы хотите перенаправить как это:

<VirtualHost *:80>
    ServerName example.com
    ServerAlias foo.example.com bar.example.com others.example.com
    DocumentRoot /www/redirect_folder 
</virtualhost>

В той папке делают простую index.php страницу, которая вызывает 301, таким образом, любые домены содержат, там будет перенаправление к Вашему основному домену с этим 301 кодом.

<?
Header( "HTTP/1.1 301 Moved Permanently" );
Header( "Location: http://www.example.com" );
?> 

Почему Вы думаете, что это лучше этот путь?

Таким образом, Вы не должны будете продолжать обновлять набор мест каждый раз, у Вас есть новый домен для содержания и redirct к основному домену, и он не будет служить пользователям с текущим именем, но на самом деле перенаправит их к основному рассматриваемому домену.

Если Вы - владелец сервера, можно сделать его еще лучше, можно поместить 2-й virtualhost как первый virtualhost в httpd.conf vhost.conf файла и каждый раз, когда Вы поражаете IP своего сервера, это приведет Вас к странице перенаправления, которая приведет Ваших пользователей к основному домену в этом случае вместо того, чтобы иметь необходимость установить набор ServerAlias, можно просто создать DNS, запись для того данного субдомена или продвижения домена к IP и серверу будет заботиться об остальных.

В этом последнем случае все, в чем Вы нуждались бы для своего виртуального хоста, будет:

<VirtualHost *:80>
    ServerName example.com
    DocumentRoot /www/redirect_folder 
</virtualhost>

поскольку Вам не нужен ServerAlias с тех пор каждый и каждый запрос, который совершает нападки, Ваш IP сервера перейдет к Вашему первому vhost.

Кроме того, если бы Вы хотели сделать это использование .htaccess, то это было бы что-то вроде этого я живо:

RewriteEngine on
rewritecond %{http_host} ^foo.example.com [nc]
rewriterule ^(.*)$ http://www.example.com/$1 [r=301,nc] 
4
ответ дан 3 December 2019 в 03:24

Все это зависит от порядка конфигурации в этом случае.

Если у Вас есть установка как это:

<VirtualHost>ServerAlias *.domain.tld</VirtualHost>
<VirtualHost>ServerName subdomain.domain.tld</VirtualHost>

Чем люди будет всегда заканчиваться в первом vhost. Однако при определении их как это это работает:

<VirtualHost>ServerName subdomain.domain.tld</VirtualHost>
<VirtualHost>ServerAlias *.domain.tld</VirtualHost>

Просто помните, что подстановочные знаки должны всегда быть внизу.

1
ответ дан 3 December 2019 в 03:24

Теги

Похожие вопросы