在 Ubuntu 22.04 上接收 PHP 中的 403 Forbidden 错误

在 Ubuntu 22.04 上接收 PHP 中的 403 Forbidden 错误

我遇到了一个长期存在的问题:每当我尝试访问 Apache Web 服务器上目录内的任何 PHP 文件(index.php 除外)时,都会收到 403 Forbidden 错误。此问题突然出现,而最近未对配置进行任何重大更改。

以下是问题的详细信息:

  • 错误详情:当访问目录内的 PHP 文件(例如 login_process.php)时,我收到 403 Forbidden 错误。
  • 文件权限:我已验证相关目录和文件的文件权限设置正确。
  • Apache 错误日志:Apache 错误日志(/var/log/apache2/error.log)始终显示如下与我的工作目录中的文件相关的条目: [Time] [access_compat:error] [pid 841806] [client IP] AH01797: client denied by server configuration: /var/www/example.com/dir/anyfile-except-index.php, referer: https://example.com/dir/
  • Apache 配置(apache2.conf):我的 Apache 配置允许在 <Directory /var/www/> 块内授予 AllowOverride All 和 Require all 权限。
<Directory /var/www/>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

我尝试了各种故障排除步骤,包括检查 Apache 配置、文件权限和 .htaccess 文件,但无法解决这个问题。

有人能提供一些见解或建议,关于如何调试和修复我的 Apache Web 服务器上目录内的 PHP 文件的 403 Forbidden 错误吗?

更新:通过AllowOverride None在 apache2.conf 中进行设置解决了我的问题。但我希望目录中的自定义 .htaccess 规则也能应用。

提前感谢您的帮助!

答案1

此错误仅由我之前的故障引起。在我们域名的 Web 根目录中。此 .htaccess 代码位于其中:

<Files *.php>
    Order Deny,Allow
    Deny from all
    Allow from 127.0.0.1
</Files>

<Files index.php>
    Order Allow,Deny
    Allow from all
</Files>

所以,修复代码后,我的项目就可以正常工作了。感谢大家抽出宝贵的时间帮助我解决我的错误。

相关内容