Apache-2.2
處理開發子域
我有一個正在轉發到我的主域的虛擬主機(例如,顯示與我的主域顯示的相同內容)。
現在我的網站使用一個主域:www.example.com
以及各種別名域:example.com short.com
我正在創建一個新的圍牆花園開發網站:dev.example.com
但是我的虛擬主機沒有被該網址辨識。
我是否必須在我的 DNS 主機中為 *.example.com 創建萬用字元記錄?
這是我的預設虛擬主機設置中的相關部分(目前位於
/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 子域並將主域用於其他所有內容?
當您嘗試 ping “dev.example.com”時會發生什麼?它是否完全解析為IP地址?如果是這樣,它是 Apache 伺服器的 IP 地址嗎?
在這種情況下,我懷疑您需要在 DNS(或至少在 /etc/hosts)中配置一個新的“dev.example.com”記錄,以便您的工作站知道該 DNS 應該去哪裡。
嘗試將您的開發站點的 Virtualhost 條目更新為:
<VirtualHost *:80>
注意添加:80。
您的虛擬主機定義應與NameVirtualHost設置的值匹配。執行
apachectl configtest
通常會報告任何不匹配。