首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> C++ 入門

解決 WAMP 開啟 vhost 後 localhost 顯示 403 Forbidden 問題

     編輯:C++ 入門

解決 WAMP 開啟 vhost 後 localhost 顯示 403 Forbidden

問題現象

配置虛擬主機後,訪問 https://localhost/ 回傳 403 Forbidden,但目錄 d:/localhost/ 存在且有權限。調換 80/81 端口順序無效,修改 httpd.conf 權限段落也無效。

根本原因推測

Apache 內部快取或 vhost 載入順序導致權限繼承異常。首個 VirtualHost *:80 若缺少顯式 <Directory> 授權,可能繼承預設拒絕規則。

解決方案

在首個 VirtualHost *:80 區塊內**顯式加入目錄授權**:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot "d:/localhost"
    ServerName localhost
    ErrorLog "logs/localhost-error.log"
    CustomLog "logs/localhost-access.log" common
    <Directory "d:/localhost">
        Options Indexes
        Require all granted
    </Directory>
</VirtualHost>

驗證步驟

  1. 加入上述 <Directory> 區塊。
  2. 重啟 Apache。
  3. 訪問 https://localhost/ 應顯示目錄列表(或索引頁)。
  4. 若正常,**可嘗試移除該區塊再重啟**,有時快取會保持正常狀態(本文實測移除後仍正常)。

補充發現

移除 httpd.conf 全域 <Directory /> 中的 Options Indexes,僅保留 Require all granted,虛擬主機目錄列表功能依然正常。推測 WAMP/Apache 存在殘留快取機制,重啟甚至重裝難以完全清除。

建議

  • 虛擬主機配置**務必**在每個 VirtualHost 內顯式宣告 <Directory> Require all granted。
  • 避免依賴全域 <Directory /> 繼承。
  • 若遇詭異 403,優先檢查 vhost 內目錄授權,並嘗試「加入→重啟→移除→重啟」驗證快取影響。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved