解决:403 Forbidden “You Don’t have permission to access on this server”
许多Web服务器配置面临与文件权限相关的问题。它经常使访问者无法访问服务器,并以“403 Forbidden”错误的形式出现。通常,错误信息是类似于“403 Forbidden:you don’t have permission to access/on this server”。它可以是任何形式的“Forbidden:you don’t have permission to access this resource”。”
类似的问题也可能由于Apache和NGINX配置文件中的问题,甚至由于损坏的. htaccess文件而发生。以下是所有这些问题的三个逐步解决方案。
什么原因导致Apache和NGINX 403 Forbidden Error?
这是Apache和NGINX端上一个相当常见的403错误,由无数问题引起。但是,在大多数情况下,错误是由于缺乏公开访问站点所需的适当权限而发生的。除此之外,WordPress网站经常面临这个问题,因为一个坏的. htaccess文件。
此外,从Apache2.4版开始,指令的工作方式发生了一些变化。这还会限制公众访问您的网站,并导致“403禁止”错误。
如何解决“403 Forbidden”错误
如果您正在使用一个网站,并遇到“403 Forbidden”的NGINX或Apache错误,请首先尝试清除浏览器的缓存数据和Cookie。如果您正在使用VPN,请确保禁用它,以防不当的VPN配置导致403错误。
另一方面,如果你是网站管理员,你应该知道大多数Apache和NGINX 403 Forbidden错误都是由不正确的文件权限设置和错误的配置文件引起的。
按照下面给出的解决方案一个接一个,让你的网站重新工作:
1.修复文件夹以避免403错误
大多数人都面临这个常见的403错误,因为缺乏适当的权限。如果站点管理员忘记启用对外部世界的读访问,那么最终用户将无法访问请求的资源。这往往是这个错误的根本原因。
例如,假设您试图访问WordPress站点上一个名为extbook.php的文件,并出现一个错误,指出您没有访问此服务器上的/extbook.php的权限。这意味着文件就在那里,但站点所有者已禁用对公共用户的访问。
如果您是站点管理员,则需要确保供公众访问的文件具有适当的读取权限。否则,如果您在公共站点上遇到此错误,请通知站点管理员解决此问题。
为可公开访问的文件设置正确的权限可能有点棘手。这就是为什么管理员应该从绝对为零的权限开始,然后根据需要添加它们。最好让文件夹的权限模式为755,文件夹的权限模式为644。
对于一个简单的网站,目录需要有执行权限,文件应该有读权限。请确保不给予文件执行权限。恶意用户可以通过这些文件获得对公共服务器的不必要访问。
读取、写入和执行访问的权限模式分别为4、2和1。因此,目录的权限模式为755意味着只有所有者才能完全访问目录内容。组用户和其他用户只能读取和执行。类似地,文件的644权限模式向所有者提供读写访问,而只向其他所有人提供读访问。
若要解决”禁止:您没有权限在任何服务器上访问此资源”等错误,请修复您的webroot目录权限。下面的命令使用chmod实用程序将目录权限设置为755:
sudo find/var/www/html—type d—exec chmod 755 {};
此命令假定您使用默认的Apache文档根目录来保存您的网站。如果您使用的是不同的目录,请相应地替换目录名。使用以下命令将所有文件权限更改为644:
sudo find/var/www/html—type f—exec chmod 644 {};
上面的命令使用find实用程序来定位单个文件,并通过chmod设置正确的权限。结尾的{}保存find命令返回的文件路径,而后缀(;)标记迭代的结束。
此外,您还可以单独更改文件权限。例如,以下命令将更改Web根目录上的extbook.php的权限,并使其可公开访问。因此,下次有人尝试访问此文件时,他们不会看到可怕的“您没有访问此资源的权限”错误。
sudo chmod 644/var/www/html/textbook.php
一旦您根据需要更改了所有文件权限,请重新启动Apache或NGINX服务器,以使您的更改生效。
sudo systemctl restart apache2.servicesudo systemctl restart nginx
这些命令分别在Ubuntu上重新启动Apache和NGINX服务器。然而,许多基于RPM的发行版(如RHEL或CentOS)将Apache安装为httpd。对于此类系统,请改用以下命令:
sudo systemctl restart httpd
2.修复您的WordPress网站的. htaccess文件
. htaccess文件作为分布式配置文件,告诉Web服务器如何处理每个目录的配置更改。有时此文件可能会被损坏,并可能导致”您没有权限访问/在此服务器”错误。
幸运的是,如果这是导致服务器上403错误的原因,您可以通过创建一个新的. htaccess文件轻松地修复这个问题。要为您的网站创建新的. htaccess文件,首先,登录到您的WordPress仪表板。然后,点击设置Permalinks。>
您不必在这里做任何额外的更改。只需点击保存更改按钮,WordPress就会为您生成一个新的. htaccess文件。
因此,当您在Apache服务器上看到“您没有访问此资源的权限”或“无法读取htaccess文件,拒绝访问以确保安全”时,请尝试创建一个新的.htaccess文件。这种方法通常适用于WordPress网站。
3.在Apache配置文件中配置指令
Apache2.4使用了一个名为mod_authz_host的新配置模块。本模块公开了几条新指令。简而言之,这实现了以下规则:
- 要求所有授权:允许所有请求
- 要求所有拒绝:拒绝所有请求
- 要求主机www.example.com:仅允许来自safe.com的请求
如果您使用的是Apache 2.4,请确保您的主配置文件包含以下代码块。您可以使用一个简单的文本编辑器(如Vim)签出该文件的内容。如果缺少这些块,请在配置文件中添加此块。然后,你可以保存并退出Vim。
vim/etc/apache2.conf
代码:
<;目录/&>不需要所有被拒绝的<;/目录&>不需要所有已授予的<;/目录&>不需要所有已授予的<;/目录&>;不需要所有已授予的<;/目录&>不需要所有已授予的<;/目录&>。
此外,如果您运行的是基于RHEL的Web服务器,则需要方便地访问您的Apache配置文件中的/var/www部分。因此,请确保/etc/httpd/conf/httpd.conf文件包含以下代码块:
vim/etc/httpd/conf/httpd. conf
代码:
<目录"/var/www"> 允许无 要求所有授权/目录<>
最后,使用以下命令之一重新启动Apache服务器:
#对于Ubuntu和Debiansudo systemctl restart apache2.service#对于RHEL和CentOSsudo systemctl restart httpd
修复Linux上的403 Forbidden Server Permission Error
很多人在访问公共网站或配置自己的网站时都会面临上述问题。重置Apache或NGINX服务器的文件系统权限应该是第一个选择。如果更改权限后错误仍然存在,请尝试创建一个新的. htaccess文件,并确保在服务器配置文件中正确设置了指令。
还有更多的问题可能会导致类似于此的服务器端错误。您需要熟练地排除Linux服务器问题的故障,以便在这种情况下启动并运行您的服务器。
延伸阅读:
Windows 记事本终于获得自动更正和拼写检查功能
在首次引入 Windows 大约 41 年后,记事本终于更新了自动更正和拼写检查功能。这家科技巨头于今年 3 月推出了拼...
Ubuntu 的 apt 和 apt-get 命令有什么区别?
在Ubuntu及其他基于Debian的Linux发行版中,软件包管理是系统维护的一个重要方面。apt和apt-get是两...
Ubuntu远程桌面:如何设置和连接
远程桌面是一种允许您远程接管和使用另一台计算机的服务。在Ubuntu中,可以在图形客户端机器上启用它来控制主机。此功能对...
苹果公司在“放开”iPad活动上宣布的4款产品(以及你错过了什么)
利用当天的视频 苹果2024年5月的“放开”活动标志着iPad系列的一个重要里程碑,该公司推出了自成立以来最重大的升级。...
将照片从iPhone传输到iPhone的8种快速方法
已升级到新iPhone,是否要从旧设备中移动所有照片?或者你只是想从别人的iPhone上转移照片?以下是在两部iPhon...