Apache-2.2
Virtualhost - 定義子域,每個子域都有單獨的文件夾
我目前有一個主要域:mydomain.com
這工作正常。
我現在想做的是通過 mydomain.conf 文件添加一個子域,這樣我就可以擁有:
sub.mydomain.com
我嘗試了以下方法 - 但是結果是我在 sub.mydomain.com 上提供來自 mydomain.com 的內容:
# MY MAIN DOMAIN <VirtualHost *:80> ServerName mydomain.com ServerAlias *.mydomain.com DocumentRoot /var/www/mydomain.com/html </VirtualHost> # DEFINING MY SUBDOMAIN <VirtualHost *:80> ServerName sub.mydomain.com ServerAlias sub.mydomain.com DocumentRoot /var/www/sub/html/ </VirtualHost>
我自然地在以下位置為子域創建了 DocumentRoot:DocumentRoot /var/www/sub/html/
在我的 DNS 供應商處,我為兩者創建了一個 A 記錄:sub.mydomain.com www.sub.mydomain.com - 並將其指向我的伺服器 IP。(與 mydomain.com 指向的 IP 相同)
我正在執行 Centos 6.2。
任何想法這裡有什麼問題?
問題是你的第一個 VirtualHost 有這條線
ServerAlias *.mydomain.com
這匹配所有子域。由於 VirtualHosts 是按照它們在配置文件中出現的順序進行解析的,因此 Apache 會找到這個 VH 並且永遠不會繼續查看下一個 VH。
換句話說,您需要移動這兩個域,以便子域的 VirtualHost 條目出現在主域的條目之上。
Your virtual host entry should be like this. Hope it will help you. <VirtualHost mydomain.dev:80> ServerName www.yourdoamin.com ServerAlias yourdomain.com *.yourdomain.com DocumentRoot /var/www/path_of_folder </VirtualHost>