403 Forbidden錯誤原因詳解
- 403 - Forbidden(禁止訪問),服務器拒絕請求
- - forbidden request (matches a deny filter) => HTTP 403
- - The request was a legal request, but the server is refusing to respond to it.
原因1 apache的配置文件沒有對站點目錄許可
apache配置文件中沒有對站點目錄的權限許可配置,這通常是在初始化安裝apahce后,更改了默認的apache站點目錄導致。
解決辦法可能是:通過給主配置文件增加類似<Directory "/application/apache2.2.31/htdocs"></Directory>標簽實現對指定目錄的權限控制
典型如下(對/var/www目錄下的文件允許訪問):
- <Directory "/var/www">
- Options -Indexes FollowSymLinks # 為了服務器的安全 Indexes參數一般要取消
- AllowOverride None
- Order allow,deny # 允許未被明確拒絕的
- Allow from all
- </Directory>
原因2 站點目錄下沒有首頁文件,而apache 的配置又禁止了目錄的瀏覽
站點目錄下沒有首頁文件 (index.php、index.html等默認文件),而apache的配置又禁止了目錄瀏覽(#Indexes參數:訪問目錄時,另外如果不存在默 認首頁則展示站點列表,該行建議改成 Options None),這時也會提示403錯誤。
解決辦法:在站點目錄添加默認首頁文件或者將配置文件中Options Index增加上。
原因3 deny from all 禁用了所有來訪者訪問
- <Directory "/var/www">
- Options -Indexes FollowSymLinks # 為了服務器的安全 Indexes參數一般要取消
- AllowOverride None
- Order allow,deny # 允許未被明確拒絕的
- Deny from all
- </Directory>
解決辦法:參考原因2解決方法配置</Directory> 參數。
如果系統為Linux系統,站點可能存在目錄權限問題
站點目錄需要apache的用戶有訪問權限,否則就會報403錯誤(一般web站點目錄權限給755,站點文件權限給644,上傳程序通過另外的上傳服務器提供文件上傳)
