WHMCS自定义页面无.php扩展名访问报404的htaccess配置问题
解决方案
WHMCS官方默认的友好URL规则仅覆盖系统内置基础页面,自定义页面不在规则适配范围内,因此不带.php后缀访问会返回404,可通过修改对应服务配置添加自定义重写规则解决。
Apache(.htaccess配置)
操作步骤:
- 进入WHMCS安装根目录,找到.htaccess文件,备份后编辑
- 在
RewriteEngine On指令之后、官方默认的WHMCS友好规则之前,添加对应规则
注意:规则的位置非常重要,如果放在官方WHMCS默认规则之后,会被系统内置路由优先匹配,导致自定义规则不生效。
单个特定页面配置(推荐,避免规则冲突)
比如你需要访问/mypage对应到根目录的mypage.php,添加:
RewriteRule ^mypage$ mypage.php [L]
如果自定义页面放在子目录/custom/下,需要访问/custom/mypage对应到/custom/mypage.php,规则调整为:
RewriteRule ^custom/mypage$ custom/mypage.php [L]
批量自定义页面通用配置
如果有多个自定义页面需要统一适配,不想逐个添加规则,可以添加以下通用规则,仅当对应.php文件真实存在时才会触发重写,最大程度避免与系统内置路由冲突:
# 自定义页面无后缀重写规则 RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}\.php -f RewriteRule ^(.*)$ $1.php [L]
Nginx配置
如果你的服务器使用Nginx而非Apache,无需配置.htaccess,在站点的Nginx配置文件的server块中添加以下规则即可:
location / { try_files $uri $uri/ $uri.php?$query_string; }
添加后重载Nginx配置生效。
验证步骤
- 保存配置文件后,清空浏览器缓存
- 登录WHMCS后台,进入系统设置清空系统缓存
- 直接访问不带.php后缀的自定义页面地址验证是否正常打开
内容的提问来源于stack exchange,提问作者Mostafa Esmaeili
相关产品推荐
相关产品推荐

