У меня есть виртуальный хост, который пересылает данные на мой основной домен (например, показывает тот же контент, что и мой основной домен).
Сейчас мой сайт использует основной домен: www.example.com
И различные псевдонимы доменов: example.com short.com
Я создаю новый обнесенный стеной сайт развития сада: dev.example.com
Но мой виртуальный хост не распознается по этому URL-адресу.
Нужно ли мне создавать запись с подстановочными знаками для * .example.com на моем DNS-узле или что-то в этом роде?
Вот соответствующий раздел из моих настроек виртуального хоста по умолчанию (в настоящее время /etc/apache2/sites-enabled/000-default
):
<VirtualHost *:80>
ServerAdmin webadmin@example.com
ServerName www.example.com
ServerAlias example.com
ServerAlias shortUrlEx.com
ServerAlias www.shortUrlEx.com
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example.com [NC]
RewriteRule ^(.*)$ http://www.example.com$1 [L,R=301]
RewriteCond %{HTTP_HOST} ^shortUrlEx.com [NC]
RewriteRule ^(.*)$ http://www.example.com$1 [L,R=301]
RewriteCond %{HTTP_HOST} ^www.shortUrlEx.com [NC]
RewriteRule ^(.*)$ http://www.example.com$1 [L,R=301]
DocumentRoot /var/www/examplepath
php_value date.timezone "America/New_York"
php_value expose_php "Off"
php_value upload_max_filesize 10M
php_value post_max_size 10M
... other config options
А dev.example.com настроен следующим образом (из /etc/apache2/sites-enabled/dev.example.com
):
<VirtualHost *>
<Directory />
AuthType Basic
AuthName "Check Site"
AuthUserFile /srv/dev-example/config/.htpasswd
Require valid-user
</Directory>
ServerName dev.example.com
DocumentRoot /srv/dev-example/public_html/
Alias /favicon.ico /srv/dev-example/docs/dev_favicon.ico
php_value date.timezone "America/New_York"
php_value expose_php "Off"
php_value upload_max_filesize 10M
php_value post_max_size 10M
<Directory />
Options FollowSymLinks -Indexes
AllowOverride None
</Directory>
<Directory /srv/dev-example>
Options FollowSymLinks MultiViews -Indexes
AllowOverride All
Order allow,deny
allow from all
</Directory>
... further options that shouldn't be applicable...
Что я здесь делаю не так? Как мне настроить виртуальные хосты по умолчанию и dev.example.com, чтобы разрешить доступ к поддомену dev и использовать основной домен для всего остального?
Мне пришлось:
Измените настройку виртуального хоста на:
<VirtualHost *:80>
Раскомментируйте параметр NameVirtualHost:
NameVirtualHost *:80
И добавьте ServerAlias к виртуальному хосту dev.shermanbrothers.com.
ServerAlias dev.shermanbrothers.com
Попробуйте обновить запись Virtualhost на своем сайте разработчиков до: <VirtualHost *:80>
Обратите внимание на добавление: 80.
Определения вашего виртуального хоста должны соответствовать ИмяVirtualHost значение настройки. Бег apachectl configtest
обычно сообщает о любых несоответствиях.
Что происходит, когда вы пытаетесь пинговать "dev.example.com"? Преобразуется ли он вообще в IP-адрес? Если да, то это IP-адрес сервера Apache?
В этом случае я подозреваю, что вам нужно будет настроить новую запись "dev.example.com" в DNS (или, по крайней мере, в / etc / hosts), чтобы ваша рабочая станция знала, куда должен идти этот DNS.
Не должен /etc/apache2/sites-enabled/dev.shermanbrothers.com
быть /etc/apache2/sites-enabled/dev.shermanbrothers.com.conf
? Я думаю, что Apache принимает файлы * .conf, по крайней мере, в CentOS. Или вы его вручную включили?