Я пытаюсь правильно настроить два домена. У меня есть проблемы, надеюсь, вы мне поможете. Конфигурация сайта:
<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-адрес.