Contents

已解決:403 Forbidden“您無權訪問此服務器”

許多 Web 服務器配置都面臨與文件權限相關的問題。它通常會導致訪問者無法訪問服務器,並以“403 Forbidden”錯誤的形式出現。通常,錯誤消息類似於“403 Forbidden:您無權訪問此服務器上的/”。它可以是“禁止:您無權訪問此資源”形式的任何內容。

“Apache 和 NGINX 配置文件之間的差異以及.htaccess 文件可能出現故障的可能性可能會帶來類似的挑戰。為了解決這些問題,遵循這些簡單的故障排除步驟會很有幫助。

是什麼原因導致 Apache 和 NGINX 403 Forbidden 錯誤?

Apache 和 NGINX 平台中 403 錯誤的普遍存在可歸因於一系列不同的因素。然而,這通常是由於公共訪問所需的授權憑據不足所致。此外,由於.htaccess 配置有缺陷,WordPress 安裝經常遇到這種障礙。

此外,隨著 Apache 2.4 版的出現,對指令功能進行了某些更改,這可能會阻礙公眾訪問網站並可能引發“403 Forbidden”錯誤。

如何以用戶身份修復“403 Forbidden”錯誤

如果您在使用網絡平台時遇到“403 Forbidden”錯誤,最初的嘗試應包括清除瀏覽器的緩存信息並丟棄任何存儲的 cookie。此外,如果您使用虛擬專用網絡 (VPN),則可能需要禁用它,因為 VPN 的潛在配置錯誤可能會導致此問題。

另外,對於網站管理員來說,重要的是要意識到許多 Apache 和 NGINX 403 Forbidden 錯誤是由不正確的文件權限設置和有缺陷的配置文件引起的。

要恢復網站的功能,請按順序執行所提供的解決方案集中概述的步驟:

修復文件權限以避免 403 錯誤

由於缺乏適當的授權,許多人都會遇到普遍的 403 錯誤。在網站管理員忽略向外部實體授予讀取權限的情況下,用戶在嘗試檢索特定資源時可能會遇到無法訪問的情況。因此,這種許可上的缺陷常常構成此類錯誤的根本基礎。

考慮這樣一種場景,其中一個人嘗試從 WordPress 網站檢索名為“textbook.php”的文檔,卻遇到一條錯誤消息,表明他們無權訪問託管服務器上的“/textbook.php”。這表明該文件存在;然而,站點管理員似乎已選擇限制普通用戶對其的訪問。

/bc/images/forbidden-you-can-not-access-textbook-php-on-this-server.jpg

為了確保指定供公眾使用的文件可以正確訪問,網站管理員有責任驗證他們是否擁有必要的讀取權限。如果個人在訪問公共門戶時遇到此錯誤,請謹慎與站點管理員溝通以糾正這種情況。

以確保適當的可訪問性同時保持安全性的方式修改文件權限可能會帶來某些挑戰,特別是在涉及公開可用的內容時。謹慎的方法是從沒有任何權限的情況下開始,然後根據需要逐步添加權限。在這方面,通常建議使用寬鬆設置 755 組織目錄,並使用更嚴格的設置 644 組織單個文件。

為了使一個基本的網頁能夠正常運行,需要為其關聯的目錄授予可執行權限,同時確保各個文件具有讀取權限。但是,必須注意不要授予文件本身執行權限,因為惡意個人可能會利用此漏洞通過未經授權的方式滲透到可公開訪問的服務器。

/bc/images/file-permissions-to-solve-you-dont-have-access-error.png

值 4、2 和 1 授予的相應權限對應於讀取、寫入和執行訪問模式。因此,當目錄被授予755的權限模式時,這就授予了所有者對其內容的獨占權限,而組成員和其他個人則被限制讀取和執行所述內容。另一方面,應用於文件的 644 權限模式賦予所有者讀取和寫入權限,但限制所有其他人只能讀取文件的內容。

您沒有權限訪問此資源”,需要確保 webroot 目錄具有適當的文件和目錄權限。一種方法是利用“chmod”實用程序,它允許以特定格式設置所需的權限。例如,以下命令可用於向目錄所有者授予讀、寫和執行權限,同時保留其他人的受限權限:bashsudo chown-R:755/var/www/html/your-directory

 sudo find /var/www/html -type d -exec chmod 755 {} \; 

上述指令假定您正在使用 Web 服務器的標准文件夾,該文件夾通常由 Apache 表示為默認文檔根目錄。如果您使用替代目錄,請相應地修改目錄名稱。要將每個文件的權限設置修改為“644”,請執行以下指令:

 sudo find /var/www/html -type f -exec chmod 644 {} \; 

上述指令使用實用程序 find 來識別單個文件,然後使用 chmod 修改其權限。右大括號“{}”包含 find 命令生成的文件路徑,而分號“;”表示迭代處理的終止。

此外,還可以修改單個文件的權限。為了說明這一點,請考慮以下命令,該命令修改位於 Web 根目錄中的“textbook.php”文件的權限以授予公共訪問權限。因此,以後嘗試訪問此文件時將不再顯示未經授權的訪問錯誤消息。

 sudo chmod 644 /var/www/html/textbook.php 

修改必要的文件權限後,建議您重新啟動 Apache 或 NGINX Web 服務器,以確保任何配置更改均得到完全實施並以最佳狀態運行。

 sudo systemctl restart apache2.service
sudo systemctl restart nginx 

上述說明有助於在 Ubuntu 操作系統中重新啟動 Apache 和 NGINX 服務器。儘管如此,值得注意的是,某些基於 RPM 的發行版,包括 Red Hat Enterprise Linux (RHEL) 或 CentOS,可能已經以“httpd”名稱安裝了 Apache。在這些情況下,用戶應使用以下替代命令來實現無縫操作:

 sudo systemctl restart httpd 

修復您的 WordPress 網站的.htaccess 文件

.htaccess 文件充當分散的配置文件,指導 Web 服務器根據特定目錄管理調整。在某些情況下,此文件可能會損壞並導致授權問題,從而導致“您不具備訪問此服務器上的/的必要權限”消息。

幸運的是,只需生成新的.htaccess 文件即可解決服務器上的 403 錯誤。要為您的網站生成.htaccess 文件,請在登錄 WordPress 儀表板後,導航至“設置”>“永久鏈接”。

/bc/images/pemalink-update-in-wordpress-site.png

您無需進行任何進一步的調整。只需單擊“保存更改”按鈕,WordPress 就會自動為您創建更新的.htaccess 文件。

/bc/images/pemalink-change-in-wordpress-site.png

當遇到錯誤消息“訪問此資源的權限被拒絕”或“無法讀取 htaccess 文件;在 Apache 服務器上“出於安全原因拒絕訪問”時,建議創建一個新的.htaccess 文件作為潛在的解決方案,特別是對於 WordPress 網站。

在 Apache 配置文件中配置指令

Apache 2.4 採用了一種名為“mod\_authz\_host”的新穎配置模塊,它提供了許多創新的實施指令。本質上,這些指令制定了後續指南:

⭐要求全部授予:允許所有請求

⭐要求全部拒絕:拒絕所有請求

主機“safe.com”的安全策略規定所有傳入請求必須源自該域才能獲得訪問權限。這通過限制未經授權的訪問和潛在的惡意活動來確保 Web 服務器的安全性和完整性。

如果您使用 Apache 2.4,則必須確保您的主配置文件包含後續的代碼段。要驗證此部分是否存在於您的文件中,您可以使用基本文本編輯器(例如 Vim)進行檢查。如果發現任何缺陷,請將必要的內容添加到配置文件中。完成後,您將能夠成功

 vim /etc/apache2/apache2.conf 

代碼:

 <Directory />
   Options FollowSymLinks
   AllowOverride None
   Require all denied
</Directory>
<Directory /usr/share>
   AllowOverride None
   Require all granted
</Directory>
<Directory /var/www/>
   Options Indexes FollowSymLinks
   AllowOverride None
   Require all granted
</Directory> 

事實上,對於基於 Red Hat Enterprise Linux (RHEL) 的 Web 服務器,必須確保對 Apache 配置文件中的“/var/www”目錄進行不受限制的訪問。因此,可以在指定路徑中找到的“httpd.conf”文件包含隨後的代碼片段,這一點至關重要:

 vim /etc/httpd/conf/httpd.conf 

代碼:

 <Directory "/var/www">
         AllowOverride None
         Require all granted
</Directory> 

總之,要重新啟動 Apache 服務器,您可以通過執行提供的命令之一來使用上述方法之一。

 # for Ubuntu and Debian

sudo systemctl restart apache2.service

# for RHEL and CentOS

sudo systemctl restart httpd 

修復 Linux 上的 403 Forbidden Server 權限錯誤

許多人遇到的普遍問題涉及訪問公共網站或對個人網站進行故障排除的困難。作為初始操作,建議重置 Apache 或 NGINX Web 服務器的文件系統權限來解決此問題。但是,如果儘管調整了權限,但錯誤仍未解決,則生成新的.htaccess 文件並驗證其指令是否在服務器的配置文件中正確配置可能會有效。

過多的其他問題可能會導致類似的服務器端錯誤,因此需要非常熟練地解決 Linux 服務器複雜性以恢復功能。