【问题标题】:403 Forbidden response – what should I look for?403 禁止响应 – 我应该寻找什么?
【发布时间】:2023-03-11 10:30:01
【问题描述】:

我有一个脚本给我错误403 Forbidden error,它只是另一个脚本的副本,但不同之处在于两者都使用另一个mysql类来访问数据库。

我的整个项目已经完成,这是最后一个文件,所以我不想为单个文件再次完成整个工作。

服务器日志显示客户端被服务器配置拒绝:

我应该寻找什么?

我尝试了以下方法:

  • 权限为 644
  • 只有简单回显的新文件也会给出 403
  • 更改了文件夹名称

但是,index.php 可以完美运行。

【问题讨论】:

    标签: php permissions webserver


    【解决方案1】:

    检查文件的权限以及所有权。通常,403 表示 Web 服务器没有读取文件的权限,因此无法继续请求。权限可能设置正确,但文件可能由服务器上的另一个帐户拥有 - 该帐户与运行服务器的帐户不属于同一组。

    例如,我相信* Apache 默认在 httpd 用户帐户下运行,该用户帐户是 httpd 组的一部分。但是,您登录的 FTP 用户(例如 ftpuser)可能不属于 httpd 组。因此,在复制您在不同用户帐户下创建的文件时,Apache 将无法使用644 获得执行访问权限。

    * 好久没用apache了,在nginx下也差不多。

    【讨论】:

    • +1:这是我见过的 403 Forbidden 错误最常见的原因。
    • 我检查了它的 644 权限,我什至只用简单的 echo 放置了一个新文件,即使这给出了 403 错误,也重新命名了文件夹但没有用,但是我运行的 index.php 文件完美
    • 请查看更改以回答。
    • rsync 实用程序的使用没有这些问题。例如。 rsync -v -u -a -r --delete --rsh=ssh --stats ../source_folder/* user@www.remote_address.net:/var/www/destination_folder/
    【解决方案2】:

    如果您已拒绝 .htaccess 文件中的所有内容,则会出现此问题。更改即可解决问题。

    【讨论】:

    • 你能发布你对.htaccess文件所做的更改
    【解决方案3】:

    我遇到了同样的问题。我根文件夹中的.htaccess 文件有这样的代码:

    <Files ~ "\.(php|php5|py|jsp|cgi|sh)$">
        Require all denied
    </Files>
    

    但是有一个文件夹 /example 我需要在其中调用 php 文件,因此我在该特定文件夹中创建了一个 .htaccess 文件,其中包含以下内容:

    <Files ~ "\.(php)$">
        Require all granted
    </Files>
    

    注意:我运行的是 Apache 2.4

    【讨论】:

      猜你喜欢
      • 2017-12-11
      • 2016-08-17
      • 2021-04-10
      • 2022-01-18
      • 1970-01-01
      • 2014-10-22
      • 2016-06-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多