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

Apache2 Управление сервером по умолчанию

Я пытаюсь правильно настроить два домена. У меня есть проблемы, надеюсь, вы мне поможете. Конфигурация сайта:

<VirtualHost myipaddress:80>
    ServerName www.domain1.com
    ServerAdmin hostmaster@domain1.com
    DocumentRoot /home/domain1/public_html
</VirtualHost>

Конфигурация другого моего домена:

<VirtualHost myipaddress:80>
    ServerName www.domain2.com
    ServerAlias *.domain2.com domain2.com
    ServerAdmin hostmaster@domain2.com
    DocumentRoot /home/domain2/public_html
</VirtualHost>

Сайт по умолчанию отключен. Проблема в том, что при доступе к "domain2.com" из моего браузера он всегда перенаправляется на "www.domain1.com". Это работает только тогда, когда я обращаюсь к www.domain2.com безоговорочно. У меня также есть другие домены, такие как «domain1.net», «domain1.info», указывающие на мой сервер, но на данный момент они не настроены и не настроены на Apache, но я могу получить доступ из браузера и всегда обращаюсь к «www.domain1.com».

Кстати, есть ли какая-нибудь возможная конфигурация Apache для обработки только IP, я имею в виду, если я наберу "http: // myipaddress /«Я получаю www.domain1.com» ... Арр.

В дополнение к Крису его ответ. Если вы хотите перенаправить каждый поддомен site1.domain2.com, site2.domain.com. Вы можете легко добавить подстановочный знак serveralias:

<VirtualHost *:80>
ServerAlias domain2.com *.domain2.com
DocumentRoot /var/www/domain2
</VirtualHost>

Теперь по поводу обработки IP. Вы можете определить домен, указывающий на IP. Это то, что Apache также получает в заголовке HTTP-запроса. Проблема в том, что когда вы посещаете IP-адрес, веб-сервер не получает информации о том, что вы действительно хотите. Это означает, что вам нужно будет предоставить IP / веб-сайт, если вы хотите реализовать это и соответствующим образом изменить свои vhosts! (также убедитесь, что ваши домены указывают на соответствующие IP-адреса).

<VirtualHost 1.2.3.4:80>
ServerAlias domain2.com *.domain2.com
DocumentRoot /var/www/domain2
</VirtualHost>

<VirtualHost 5.6.7.8:80>
ServerAlias domain1.com *.domain1.com
DocumentRoot /var/www/domain2
</VirtualHost>

Вы должны добавить NameVirtualHost *:80 в вашу центральную конфигурацию и используйте <VirtualHost *:80> вместо <VirtualHost IP:80>. Наконец, убедитесь, что ваш DNS работает правильно.

Обновить: Чтобы указать domain2.com на www.domain2.com, вы можете использовать ServerAlias

ServerAlias domain2.com

подобное правило перезаписи (в Интернете есть несколько версий)

 RewriteEngine On
  RewriteCond %{HTTP_HOST} ^example\.com
  RewriteRule (.*) http://www.example.com/$1 [R=301,L]

или отдельный <VirtualHost>. Я бы выбрал ServerAlias ​​domain2.com.

Чтобы узнать, что в первую очередь обслуживает Apache, вы можете ввести apache2ctl -S на оболочке. Первым обслуживаемым по умолчанию является IP-адрес.