You need to enable JavaScript to run this app. Plesk(CentOS Linux)配置.htaccess自定义404页面对PHP路径无效问询
优惠活动
大模型
产品
解决方案
定价
更多

Plesk(CentOS Linux)配置.htaccess自定义404页面对PHP路径无效问询

Plesk环境PHP后缀路径自定义404失效解决方案

问题复现场景

  • 运行环境:Plesk控制面板 + CentOS Linux
  • 自定义404配置路径:域名根目录.htaccess
  • 已尝试配置:
    1. 基础错误文档配置:
    RewriteEngine On
    RewriteBase /
    ErrorDocument 404 /404.php
    
    1. 重定向规则配置:
    RewriteEngine On
    RewriteRule ^404/?$ /404.php [L]
    
  • 测试结果:
    • 无后缀错误URL(如example.com/wrongurl):正常触发自定义404
    • .html后缀错误文件(如example.com/wrongurl.html):正常触发自定义404
    • .php后缀错误文件(如example.com/wrongurl.php):返回Plesk默认404,规则失效

失效原因

Plesk默认PHP运行架构下,PHP-FPM/Mod_PHP模块会优先处理所有.php后缀请求,不存在的PHP文件会直接由后端PHP服务返回默认404响应;该响应默认会被Web服务器直接透传,优先级高于.htaccess中定义的ErrorDocument规则,导致自定义配置被绕过。

解决步骤

1. 核心配置(必做)

编辑域名根目录下的.htaccess,追加以下对应模块的兼容配置:

# Mod_PHP环境兼容配置
<IfModule mod_php.c>
  ErrorDocument 404 /404.php
</IfModule>

# PHP-FPM环境核心配置
<IfModule mod_proxy_fcgi.c>
  ErrorDocument 404 /404.php
  *ProxyErrorOverride On*
</IfModule>

说明:默认ProxyErrorOverride为Off,Web服务器会直接透传后端PHP服务返回的所有错误页面;开启后会强制Apache接管所有4xx/5xx错误响应,应用自定义的错误文档规则。

2. Plesk后台配置核验

  1. 登录Plesk管理面板,进入对应域名的「PHP设置」页面
  2. 确认「错误页面」分类下的404错误指向路径与.htaccess中定义的/404.php一致
  3. 保存配置后重启Web服务器(Apache/Nginx),使规则生效

3. 兜底规则(可选)

如果上述配置后仍有异常,可在.htaccess最顶部追加预捕获规则,优先校验PHP文件是否存在:

# 仅对不存在的PHP请求触发自定义404
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^.*\.php$ /404.php [R=404,L]

效果验证

配置完成后测试三类请求,确认均返回自定义404页面、响应状态码为404即生效:

  • 无后缀错误URL
  • 非PHP后缀的错误静态文件路径
  • 不存在的PHP文件路径

内容的提问来源于stack exchange,提问作者Stellan Coder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.13 12:36:06