一級域名(baidu.com)也叫作頂級域名,注冊一級域名是需要付費的。
而二級域名(image.baidu.com)是一級域名的延伸,所以只要購買了一級域名,二級域名是可以任意配置的。
其實(www.baidu.com)也是二級域名,只是大家已經習慣使用www為前綴的二級域名作為網站的主域名而已。
通過DNS解析服務商,可以為每個二級域名綁定不同的主機IP,這樣即使只有一個主域名也可以架設多個網站了。
如果你只有一台主機,並且要在上面建立多個項目,還得通過子域名的方式訪問,那么你需要配置 Apache 才行。
===================配置本地域名=====================
如果僅僅是作為本地訪問,只需要配置 hosts 和 httpd.conf 即可
1.在 host 文件(C:\Windows\System32\drivers\etc)中添加「127.0.0.1 自定義域名」
127.0.0.1 test.host.com
通過上面的步驟,就可以使用 test.host.com 來訪問本地服務器了。不過僅僅只做這些微薄的工作,服務器是不會知道 localhost 和 test.host.com 的區別的。所以還需要為 Apache 配置虛擬主機,讓其為不同的域名請求分配不同的處理路徑。
2.在 httpd.conf 文件(C:\wamp64\bin\apache\apache2.4.17\conf)中添加
NameVirtualHost *:80 <VirtualHost test.host.com:80> DocumentRoot "C:/Users/Administrator/Desktop/test" ServerName test.host.com <Directory "C:/Users/Administrator/Desktop/test"> Require local </Directory> </VirtualHost>
在這一步中你需要將 DocumentRoot(項目路徑)和 ServerName(自定義域名)修改成你自己的。Directory 是用戶可以訪問的目錄,和項目路徑保持一致就行。注意 Directory 中的參數 Require local,它的意思是只允許本地訪問,如果你把它改成 Require all granted,那么任何人都可以訪問這個目錄了。
==================分配網站域名=====================
如果是打算部署在實際的項目中,那么情況會相對麻煩些,不過思想仍然是將所有二級域名請求都交給同一服務器處理,然后通過虛擬主機為不同的域名請求分配不同的處理路徑。
1.通過雲解析服務商為主域名分配子域名,再為子域名綁定主機IP。
2.修改 httpd.conf 文件,去掉 Include conf/extra/httpd-vhosts.conf 前面的注釋。
3.注釋 httpd-vhosts.conf 文件(C:\wamp64\bin\apache\apache2.4.17\conf\extra)中所有內容,然后添加
<Directory /> AllowOverride all Require all granted </Directory> NameVirtualHost *:80 <VirtualHost *:80> ServerAdmin 「管理員郵箱」 DocumentRoot 「項目根目錄」 ServerName 「二級域名」 ServerAlias 「域名別名」 ErrorLog 「錯誤日志」 CustomLog 「訪問日志」 </VirtualHost>
Directory 標簽用於給所有目錄設置訪問權限
AllowOverride all 允許 .htaccess 對URL進行重寫 / AllowOverride none 忽略 .htaccess 文件
Require all granted 允許外部訪問 / Require all denied 禁止外部訪問
NameVirtualHost 是固定形式,用於使 VirtualHost 標簽生效
VirtualHost 標簽用於為二級域名綁定虛擬主機
每一個二級域名對應一個 VirtualHost 標簽,有多少二級域名,就需要多少個 VirtualHost 標簽
DocumentRoot 和 ServerName 是必填項,其余可選
注意:由於 www 域名屬於特殊的二級域名,所以它也需要在 httpd-vhosts.conf 文件中注冊
==================注意事項======================
二級域名定義規則
www:網站的主入口(www.baidu.com)
mail:通常用於解析郵箱服務器(mail.baidu.com)
m:用於手機網站的域名(m.baidu.com)
Apache 訪問控制權限
2.2 版本允許所有請求:Order allow,deny #排序,先允許后拒絕 Allow from all #允許所有
2.4 版本允許所有請求:Require all granted #允許所有
重啟服務器
修改完 Apache 的配置文件后,必須重啟服務器配置才能生效