1. 程式人生 > >Apache泛域名解析

Apache泛域名解析

gpo 直接 ons 解釋 div class rail oot 需求

<VirtualHost *:80>
DocumentRoot "E:\work\phpStudy\WWW\ncpx\web"
ServerName ncpxceshi2.com ###主機名
ServerAlias *.ncpxceshi2.com ###範解析
<Directory "/">
Options FollowSymLinks ExecCGI
AllowOverride All
Order allow,deny
Allow from all
Require all granted
</Directory>
</VirtualHost>

dns解析的時候可以添加 a.ncpxceshi2.com c.ncpxceshi2.com 等等二級域名

用途:偽靜態的時候重寫域名 比如sport.shop.com進入的運動頁面 book.shop.com進入的是圖書頁面

==============================================================================

需求: 在apache上配置兩個項目,分別是項目a和項目b,a.baiye5.com訪問項目a,其余的除了a前綴名之外的例如b2b.baiye5.com 、*.baiye5.com等都訪問項目b。

首先在conf/httpd.conf中添加 NameVirtualHost *:80


在apache的目錄conf下新建一個文件夾mysiteconf,然後再創建一個配置文件,如baiye5.com.conf,打開文件先配置a.baiye5.com的項目a,然後配置項目b,因為apache會按照順序來執行這兩個虛擬機的配置,如果先配置了項目b,那麽項目a就無法訪問了,假如a.baiye5.com,先執行上面的虛擬機配置,符合,所以就進入了項目b了。

以下時具體配置

<VirtualHost *:80>
ServerName a.baiye5.com
DocumentRoot /var/www/html/項目a
<Directory /var/www/html/項目a>
AllowOverride all
Options -MultiViews
</Directory>
</VirtualHost>

<VirtualHost *:80>
ServerName b2b.baiye5.com
ServerAlias *.baiye5.com
DocumentRoot /var/www/html/項目b
<Directory /var/www/html/項目b>
AllowOverride all
Options -MultiViews
</Directory>
</VirtualHost>

解釋:

為什麽要配置到conf/mysiteconf/呢?
其實真正的配置文件是conf/httpd.conf文件,在該文件中插入一句話Include conf/mysiteconf/*.conf,這句話的意思時加載所有conf/mysiteconf/目錄下以conf後綴的文件,這樣做的目的是為了讓apache的配置更加簡潔,換言之,用戶也可以直接在conf/httpd.conf內配置以上信息


ServerName: 域名,不支持通配符*
DocumentRoot: 項目根目錄(rails項目的話,指定到public目錄)
ServerAlias: 設定虛擬主機的別名,支持通配符*,這裏時支持泛域名的訪問
NameVirtualHost *:80 要和 VirtualHost *:80一致,如下

NameVirtual …(IP或域名)
<VirtualHost …(IP或域名,並且要與上面的保持絕對一致)>
….
</VirtualHost>

Apache泛域名解析