解决网站访问出现 403 Forbidden 您没有权限访问此服务器问题

随心笔谈11个月前发布 编辑
209 0

许多 Web 服务器配置都面临与文件权限相关的问题。 它通常会导致访问者无法访问服务器,并以“403 Forbidden”错误的形式出现。 通常,错误消息类似于“403 Forbidden:您无权访问此服务器上的/”。 它可以是“禁止:您无权访问此资源”形式的任何内容。

由于 Apache 和 NGINX 配置文件中的问题,甚至由于 .htAccess 文件损坏,也可会出现类似的问题。 以下是关于所有网站出现 403 问题的三个逐步解决方案。

是什么原因导致 Apache 和 NGINX 403 Forbidden 错误?

 

这是 Apache 和 NGINX 端相当常见的 403 错误,由无数问题引起。 但是,在大多数情况下,错误的发生是由于缺乏公开访问站点所需的适当权限。 除此之外,wordpress 网站经常因 .htaccess 文件错误而面临此问题。

此外,自 Apache 2.4 版以来,指令的工作方式发生了一些变化。 这还会限制公众访问您的网站并导致“403 禁止”错误。

如何以用户身份修复“403 Forbidden”错误

 

如果您在使用网站时遇到“403 Forbidden”NGINX 或 Apache 错误,请首先尝试清除浏览器的缓存数据和 cookie。 如果您使用 VPN,请确保禁用它,以防不正确的 VPN 配置导致 403 错误。

另一方面,如果您是网站管理员,则需要知道大多数 Apache 和 NGINX 403 Forbidden 错误是由文件权限设置不当和配置文件错误引起的。

请一一遵循以下给出的解决方案,让您的网站重新正常运行

1. 修复文件权限以避免 403 错误

大多数人由于缺乏适当的权限而面临这种常见的 403 错误。 如果站点管理员忘记启用对外界的读取访问权限,那么最终用户将无法访问所请求的资源。 这通常是此错误的根本原因。

例如,假设您尝试访问 WordPress 网站上名为 Textbook.PHP 的文件,但出现错误,指出您无权访问此服务器上的 /textbook.php。 这意味着该文件在那里,但网站所有者已禁止公共用户访问。

如果您是网站管理员,则需要确保供公共访问的文件具有适当的读取权限。 否则,如果您在公共网站上遇到此错误,请通知网站管理员解决此问题。

为可公开访问的文件设置正确的权限可能有点棘手。 这就是为什么管理员应该从绝对零权限开始并根据需要添加它们。 最好将文件夹的权限模式设置为 755,将文件设置为 644。

对于一个简单的网站,目录需要有执行权限,文件应该有读取权限。 确保不要授予文件执行权限。 恶意用户可以通过此类文件获得对公共服务器的不需要的访问权限。

解决网站访问出现 403 Forbidden 您没有权限访问此服务器问题

服务器文件权限设置

读取、写入和执行访问的权限模式分别为 4、2 和 1。 因此,目录的权限模式为 755 意味着只有所有者才能完全访问目录内容。 组用户和其他人只能读取和执行。 同样,文件的 644 权限模式向所有者提供读写访问权限,而向其他人提供只读访问权限。

要解决诸如“禁止:您无权访问任何服务器上的此资源”之类的错误,请修复您的 webroot 目录权限。 以下命令使用 chmod 实用程序将目录权限设置为 755:

解决网站访问出现 403 Forbidden 您没有权限访问此服务器问题
1
sudo find /var/www/html type d exec chmod 755 {} \;

此命令假设您使用 Apache 的默认文档根目录来保存您的网站。 如果您使用不同的目录,请相应地替换目录名称。 使用以下命令将所有文件权限更改为 644:

解决网站访问出现 403 Forbidden 您没有权限访问此服务器问题
1
sudo find /var/www/html type f exec chmod 644 {} \;

上面的命令使用 find 实用程序来定位单个文件并通过 chmod 设置正确的权限。 结尾的 {} \ 保存 find 命令返回的文件路径,分号 (;) 标记迭代的结束。

另外,您还可以单独更改文件权限。 例如,以下命令将更改 Web 根目录上的 Textbook.php 的权限并使其可公开访问。 因此,下次有人尝试访问此文件时,他们将不会看到可怕的“您无权访问此资源错误”。

解决网站访问出现 403 Forbidden 您没有权限访问此服务器问题
1
sudo chmod 644 /var/www/html/textbook.php

根据需要更改所有文件权限后,重新启动 Apache 或 NGINX 服务器以使更改生效。

解决网站访问出现 403 Forbidden 您没有权限访问此服务器问题
1
2
sudo systemctl restart apache2.service
sudo systemctl restart nginx

这些命令分别重新启动 Ubuntu 上的 Apache 和 NGINX 服务器。 然而,许多基于 RPM 的发行版(例如 RHEL 或 CentOS)将 Apache 安装为 httpd。 对于此类系统,请改用以下命令:

解决网站访问出现 403 Forbidden 您没有权限访问此服务器问题
1
sudo systemctl restart httpd

2. 修复 WordPress 网站的 .htaccess 文件

.htaccess 文件充当分布式配置文件,并告诉 Web 服务器如何处理每个目录的配置更改之类的事情。 有时,此文件可能会损坏,并可能导致“您无权访问此服务器上的/”错误。

幸运的是,如果这就是导致服务器上出现 403 错误的原因,您可以通过创建新的 .htaccess 文件轻松修复此问题。 要为您的网站创建新的 .htaccess 文件,请首先登录您的 WordPress 仪表板。 然后,单击“设置”>“固定链接”。

解决网站访问出现 403 Forbidden 您没有权限访问此服务器问题

WordPress 固定链接设置

您无需在此处进行任何其他更改。 只需单击“保存更改”按钮,WordPress 就会为您生成一个新的 .htaccess 文件。

因此,每当您在 Apache 服务器上看到“您无权访问此资源”或“无法读取 htaccess 文件,拒绝访问以保证安全”时,请尝试创建一个新的 .htaccess 文件。 此方法通常适用于 WordPress 网站。

3. 在 Apache 配置文件中配置指令

Apache 2.4 使用名为 mod_authz_host 的新配置模块。 该模块公开了几个新指令。 简而言之,这实现了以下规则:

  • 要求全部授予:允许所有请求
  • 要求全部拒绝:拒绝所有请求
  • 需要主机 test.com:仅允许来自 test.com 的请求

如果您使用的是 Apache 2.4,请确保您的主配置文件包含以下代码块。 您可以使用 Vim 等简单的文本编辑器查看该文件的内容。 如果配置文件中缺少此块,请添加此块。 然后,您可以保存并退出 Vim。

解决网站访问出现 403 Forbidden 您没有权限访问此服务器问题
1
vim /etc/apache2/apache2.conf

代码:

解决网站访问出现 403 Forbidden 您没有权限访问此服务器问题
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<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>

此外,如果您正在运行基于 RHEL 的 Web 服务器,则需要轻松访问 Apache 配置文件中的 /var/www 部分。 因此,请确保 /etc/httpd/conf/httpd.conf 文件包含以下代码块:

解决网站访问出现 403 Forbidden 您没有权限访问此服务器问题
1
vim /etc/httpd/conf/httpd.conf

代码:

解决网站访问出现 403 Forbidden 您没有权限访问此服务器问题
1
2
3
4
<Directory “/var/www”>
AllowOverride None
Require all granted
</Directory>

最后,使用以下命令之一重新启动 Apache 服务器:

解决网站访问出现 403 Forbidden 您没有权限访问此服务器问题
1
2
3
4
5
6
7
# for Ubuntu and Debian

sudo systemctl restart apache2.service

# for RHEL and CentOS

sudo systemctl restart httpd

修复 Linux 上的 403 Forbidden Server 权限错误

 

很多人在访问公共网站或配置自己的网站时都会遇到上述问题。 重置 Apache 或 NGINX 服务器的文件系统权限应该是第一个方法。 如果更改权限后错误仍然存在,请尝试创建新的 .htaccess 文件并确保在服务器配置文件中正确设置指令。

还有许多其他问题可能会导致与此类似的服务器端错误。 您需要熟练地解决 Linux 服务器问题,才能在此类情况下启动并运行您的服务器。

© 版权声明

相关文章