如何在GoDaddy主机中去除.php文件扩展名?
解决访问不带.php后缀URL的问题
问题根源分析
你的.htaccess代码存在语法错误,导致Rewrite规则未生效,核心问题如下:
- RewriteRule的标志部分
[NC, L]中,逗号和L之间的空格属于非法格式,Apache无法识别该标志,会直接忽略整条规则。 - 子目录的
.htaccess重复出现相同的语法错误,导致规则失效。
修正方案
1. 修复语法错误
将所有.htaccess文件中的RewriteRule ^([^\.]+)$ $1.php [NC, L]修改为:
RewriteRule ^([^\.]+)$ $1.php [NC,L]
(移除逗号与L之间的空格,符合Apache Rewrite规则的语法要求)
2. 确保规则覆盖目标路径
针对/HTML/目录下的文件需求,修正后的/HTML/.htaccess核心规则如下:
# 实现访问 /HTML/html5-development 对应 /HTML/html5-development.php RewriteEngine On # 排除真实存在的目录 RewriteCond %{REQUEST_FILENAME} !-d # 排除真实存在的文件 RewriteCond %{REQUEST_FILENAME} !-f # 匹配无后缀请求,自动追加.php RewriteRule ^([^\.]+)$ $1.php [NC,L]
3. 可选:优化SEO的URL重定向
如果希望用户访问带.php后缀的URL时,自动跳转到无后缀版本,可在上述规则后追加:
# 将带.php的URL永久重定向到无后缀版本 RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^\.]+)\.php [NC] RewriteRule ^ %1 [R=301,L]
额外检查项
- 确认服务器已启用
mod_rewrite模块,Apache配置中需开启RewriteEngine On,并设置AllowOverride All以允许.htaccess生效。 - 检查
.htaccess文件权限,确保服务器拥有可读权限。
内容的提问来源于stack exchange,提问作者Development
相关产品推荐
相关产品推荐

