在 WAMPServer 中修改了 Apache 根目錄(DocumentRoot)並驗證正常,隨後嘗試配置多站點(虛擬主機),修改了 Apache/conf/extra/httpd-vhosts.conf 並在 httpd.conf 中包含該文件。配置後發現 https://localhost/ 顯示「找不到頁面」(404),且原本可訪問的項目均失效。
WAMPServer 默認啟用了 httpd-vhosts.conf,且在 httpd.conf 中已包含該文件。用戶再次手動添加 Include conf/extra/httpd-vhosts.conf 導致虛擬主機配置被重複載入,或者虛擬主機配置語法錯誤(如缺少 NameVirtualHost *:80、ServerName 拼寫錯誤、DocumentRoot 路徑不存在、權限不足等),導致 Apache 啟動時虛擬主機解析異常,默認主機(localhost)也隨之失效。
打開 Apache/logs/error.log,搜索啟動時的 Syntax error、Warning、VirtualHost 相關條目,直接定位配置錯誤行。
# 在 Apache bin 目錄下執行
httpd -t
輸出 Syntax OK 表示語法無誤;否則按提示修正具體行。
確保 Include conf/extra/httpd-vhosts.conf 僅出現一次且未被註釋。WAMPServer 安裝後默認已包含,勿重複添加。
在 httpd-vhosts.conf 中,每個站點應遵循如下結構:
<VirtualHost *:80>
ServerAdmin admin@example.com
DocumentRoot "D:/wamp/www/site1"
ServerName site1.local
ServerAlias www.site1.local
ErrorLog "logs/site1-error.log"
CustomLog "logs/site1-access.log" common
<Directory "D:/wamp/www/site1">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
關鍵點:
DocumentRoot 必須為絕對路徑且目錄存在。<Directory> 權限設置為 Require all granted(Apache 2.4+ 語法)。ServerName 需在系統 hosts 文件(C:\Windows\System32\drivers\etc\hosts)中映射到 127.0.0.1。若不再需要多站點,最快修復是將 httpd-vhosts.conf 內容恢復為默認示例(或註釋掉所有自定義 VirtualHost 塊),並確保 httpd.conf 中的主 DocumentRoot 指向正確的 www 目錄。重啟 Apache 即可恢復 https://localhost/ 訪問。
httpd.conf 和 httpd-vhosts.conf。httpd -t 驗證語法,再重啟服務。*.local 或 *.test 後綴,並在 hosts 文件統一映射,避免與真實域名衝突。通過規範虛擬主機配置、避免重複 Include、確保目錄權限正確,可徹底解決 WAMPServer 多站點配置後 localhost 404 的問題。