You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过.htaccess仅移除网站根目录文件的PHP扩展名

解决根目录PHP文件移除扩展名、子文件夹保留的问题

这个需求很清晰,咱们只需要调整RewriteRule的匹配范围,让它只作用于根目录的请求,就能避免影响子文件夹里的文件啦。修改后的.htaccess代码如下:

RewriteEngine on
# 确保请求的不是目录
RewriteCond %{REQUEST_FILENAME} !-d
# 明确检查根目录下对应的.php文件是否存在
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
# 仅匹配根目录下的无扩展名请求(不含斜杠的路径)
RewriteRule ^([^/]+)/?$ $1.php [L]

代码细节解释:

  • RewriteRule ([/]+)/?$:这里的[^/]+是核心,它专门匹配不包含斜杠的字符串,也就是根目录下的请求(比如index、products),像files/file_manager这种带斜杠的子文件夹路径会直接被排除,不会触发这条规则。
  • RewriteCond %{DOCUMENT_ROOT}/$1.php -f:精准检查根目录下是否存在对应的.php文件,避免对无效请求做无意义的重写。
  • [L]标记:表示这是最后一条规则,如果匹配成功就停止后续规则处理,能提升重写的效率。

实际效果验证:

  • 访问yourdomain.com/index → 自动映射到根目录的index.php
  • 访问yourdomain.com/products → 自动映射到根目录的products.php
  • 访问yourdomain.com/files/file_manager.php → 正常保留扩展名访问,完全不受规则影响

内容的提问来源于stack exchange,提问作者Alexandre Cristo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:18:22