如何修复WordPress网站403错误

相信大部分WordPress站长都会遭遇过这样的情况,在尝试访问WordPress网站被告知某些内容是“禁止”或没有权限访问?如果是这样,您可能会遇到WordPress上的403 Forbidden Error。

在自己的WordPress网站上遭遇这样的错误,对于部分新站长来说可能会有些惊慌失措,在网上搜索各种相关的知识文档,希望快速修复错误。这不,我们已经想到了这一点,编写以下教程以帮助您修复WordPress上的403 Forbidden Error,让网站尽快恢复正常。

什么是403 Forbidden Error?

403-forbidden-error-example

403错误页面示例

与许多其他常见的WordPress错误一样,403 Forbidden错误是Web服务器用于与Web浏览器通信的HTTP状态代码

HTTP状态代码 – 每当您使用浏览器连接到网站时,Web服务器都会使用称为HTTP标头的内容进行响应。通常,这样的交互只会在后端执行,除非是发生了错误。

但是,如果出现问题,服务器将使用不同的编号HTTP状态代码进行响应。虽然这些数字也是我们站长十分讨厌的东西,但实际上这些代码非常重要,因为它们可以帮助您准确诊断网站上出现的问题。

403错误意味着您的Web服务器接收到客户端(即您的浏览器)正在发出的请求,但服务器将无法满足该请求。

在更人性化的术语中,它基本上意味着您的服务器确切地知道您想要做什么,它只是不会让您这样做,因为您由于某种原因没有适当的权限。这有点像你想要参加私人活动,但出于某种原因,你的名字被意外地从访客名单中删除了。

除了本文的403错误及我们几天前提及的503错误,还有500错误、502错误及504错误等,后续我们会尽可能对每一种HTTP错误状态代码进行解说及提出相关的解决方案。

什么原因导致WordPress上的403错误?

WordPress上产生403 Forbidden Error的两个最可能的原因是:

  1. 不规范的或者有错误的.htaccess
  2. 文件权限设置有误

当然还有一种可能是你的WordPress博客安装的某个插件存在问题,导致了403错误产生。 在本文中,我们将向您逐一说明如何解决所有这些潜在问题。

403错误变体

与许多其他HTTP状态代码一样,此错误代码也会存在很多不同的变体。以下是您可能遇到的一些常见变体:

  • 你没有权限访问此服务器:“Forbidden – You don’t have permission to access / on this server”
  • 访问被拒绝:“403 – Forbidden: Access is denied”
  • “Error 403 – Forbidden”
  • 你无权访问此地址:“403 – Forbidden Error – You are not allowed to access this address”
  • nginx:“403 Forbidden – nginx”
  • 您无权访问所请求的文档或程序:“HTTP Error 403 – Forbidden – You do not have permission to access the document or program you requested”
  • 拒绝访问服务器上的此资源:“403 Forbidden – Access to this resource on the server is denied”
  • 您的客户端无权从此服务器获取URL:“403. That’s an error. Your client does not have permission to get URL from this server”
  • 您无权查看此页面:“You are not authorized to view this page”

基本上,如果您看到任何提及“forbidden(禁止)”或“not allowed to access(不允许访问)”,都属于403 Forbidden错误。

如何修复WordPress上的403错误

为了帮助您修复WordPress网站上的403错误(403 Forbidden Error),我们将详细介绍三个单独的故障排除步骤:

#1: 文件权限

WordPress网站服务器上的每个文件夹和文件都有自己唯一的文件权限,进行权限控制:

  • 读取 – 查看文件中的数据/查看文件夹的内容。
  • 写入 – 修改文件/添加或删除文件夹中的文件。
  • 执行 – 运行文件和/或将其作为脚本执行/访问文件夹并执行功能和命令。

这些权限由3位数字表示,每个数字表示上述3个类别中每个类别的权限级别。

通常,这些权限只适用于您的WordPress网站。 但是,如果某些内容与WordPress网站上的文件权限混淆,则可能导致403 Forbidden错误。

要查看和修改站点的文件权限,您需要通过FTP/SFTP客户端连接你的WordPress服务器。

下面教程,我们将使用免费的FTP/SFTP客户端FileZilla。 但基本也适用于任何FTP程序。

连接到服务器后,可以通过右键单击来查看文件或文件夹的权限:

view-file-permissions-sftp

通过FileZilla查看文件或者文件夹权限

当然,手动检查每个文件或文件夹的权限并不实际。 相反,您可以批量设置所有文件夹内的文件或者文件夹权限。

根据WordPress Codex,WordPress官方推荐的文件及目录权限设置为:

  • 文件  – 644 or 640
  • 目录 – 755 or 750

非常重要非常重要非常重要:wp-config.php文件权限应该是440或400。

要设置这些权限,请右键单击包含WordPress站点的文件夹(虚拟服务器路径可能为·/www/*/public,VPS服务器路径可能为·/home/wwwroot/www.yourdomain.com)。 然后,选择File Attributes(文件属性):

fix-403-forbidden-error-wordpress-file-permissions-2

在FileZilla中批量编辑文件权限

在“Numeric value(数字值)”框中输入755或750。 然后,选择Recurse into subdirectories(递归处理子目录)并Apply to directories only(只应用到目录):

fix-403-forbidden-error-wordpress-file-permissions-3

WordPress目录的文件权限

一旦为目录应用了正确的权限,您可以按照同样的方式应用文件权限设置。

  • 数字值输入644或640
  • 选递归处理子目录并选中只应用到文件

fix-403-forbidden-error-wordpress-file-permissions-4

WordPress文件的文件权限

不要忘记最后的一个步骤,手动调整wp-config.php文件的权限,将权限设置为数字值440或400:

fix-403-forbidden-error-wordpress-file-permissions-5

wp-config.php文件的权限设置

如果文件权限问题导致403 Forbidden Error,现在您的站点应该已经恢复正常。否则,继续往下看。

#2: .htaccess文件

如果你的WordPress使用NGINX Web服务器,则此不存在此潜在问题,因为没有.htaccess文件,你可以直接阅读下一个问题排除方案-插件故障

但是,如果您WordPress网站所在的服务器使用Apache Web服务器,则403 Forbidden错误可能是由您站点的.htaccess 文件问题导致。

.htaccess 文件是Apache Web服务器使用的基本配置文件。 您可以使用它来设置重定向,限制访问您的网站或部分页面等。

.htaccess 文件功能强大,但不容得一个小错误,否则可能会导致大问题,如403 Forbidden错误。

与其试图检查 .htaccess 文件内容(除非你非常熟悉),不如简单粗暴地强制WordPress生成一个新的,干净的 .htaccess文件。

如下:

  • 通过FTP或者SFTP连接你的服务器
  • 在你的WordPress网站根目录找到 .htaccess 文件
  • 将该文件下载到本地以作备份(为了以防万一,最好备份一个文件)
  • 确保安全备份后删除 .htaccess 文件

fix-403-forbidden-error-wordpress-htaccess

删除 .htaccess 文件

下面我们来强制WordPress生成一个新的,干净的 .htaccess 文件:

  • 进入你的WordPress仪表盘,访问 设置 → 固定连接
  • 然后点击界面底部的保存更改(你无需在该页面做任何操作,只要点击按钮就好)

如何修复WordPress网站403错误插图(7)

如何生成新的干净的 .htaccess 文件

执行以上操作后,WordPress将为您生成一个新的 .htaccess 文件。

#3: 问题插件排查

如果您的网站的文件权限和.htaccess文件都存在问题,那么跟着下来就要对你的WordPress网站的插件进行排查了。因为403错误有可能是插件的错误或不同插件之间的兼容性问题导致。

无论问题是什么,找到有问题的插件的最简单方法是进行试错测试。 具体来说,您需要停用所有插件,然后逐个重新激活它们,直到找到罪魁祸首。

如果您仍然可以访问WordPress仪表板,则可以通过WordPress仪表盘的插件已安装的插件来逐个插件停用测试。

如果你无法访问WordPress仪表盘,取而代之的是你需要通过FTP/SFTP连接到WordPress网站服务器。然后按照以下步骤来检验插件:

  1. 进入WordPress网站根目录下的 wp-content 文件夹
  2. 然后再找到WordPress插件安装目录 plugins
  3. 右键点击 plugins 文件夹,选择重命名
  4. 修改文件名为其他名称。你可以命名为任何不同的名字,比如我们建议的 plugins-disabled 以作区分和识别。

如何修复WordPress网站403错误插图(8)

重命名插件文件夹

通过重命名文件夹,您已经成功地禁用了站点上的所有插件。

再次尝试访问您的网站。 如果您的站点正常工作,我们可以知道其中一个插件导致403 Forbidden错误。

要查找罪魁祸首,请逐个重新启用插件,直到找到导致问题的插件为止。

更改插件文件夹的文件名后,访问WordPress仪表盘插件已安装的插件应该看到许多关于插件不存在的错误提醒:

fix-403-forbidden-error-wordpress-plugins-2

重命名插件文件夹后插件不存在提醒

要解决此问题并重新获得管理插件的功能,请使用FTP程序将文件夹的名称更改回plugins。 因此,如果您将其重命名为plugins-disabled,只需将其更改回plugins即可。

完成命名恢复后,您将再次看到所有插件的完整列表。 只有都将被停用:

fix-403-forbidden-error-wordpress-plugins-3

逐个重新启用您的插件

使用“启用”按钮逐个重新启用它们。每次启用一个插件时,请尝试刷新一下403错误页面以确认问题插件。

一旦你找到导致问题的插件,你可以尝试联系插件作者修复(或者选用可代替插件)。

小结

403 Forbidden错误表示您的服务器正在运行,但由于某种原因您不再有权查看您的网站或部分页面。

导致此错误的两个最可能原因是您的WordPress网站的文件权限或 .htaccess 文件的问题。 除此之外,一些插件问题也可能导致403 Forbidden错误。

如果你的WordPress网站也遭遇403错误,可以按照上述操作恢复你的网站。

标签

评论交流

评论列表(2)

  • 奶爸de笔记

    2019.6.9 10:06

    能不能走点心用中文软件截图。我也碰到过403,忘记怎么弄的了。反正小意思。

    回复
    • WBOLT_COM

      2019.6.9 18:06

      @奶爸de笔记 帮助你提升英文阅读能力啊。