如何实现URL无后缀访问PHP文件且不自动追加.php后缀
解决方案
你可以通过修改.htaccess的重写规则实现需求,修改后的完整配置如下:
RewriteEngine On Options -Indexes -Multiviews # 无后缀路径匹配对应存在的php文件,内部重写无跳转 RewriteCond %{DOCUMENT_ROOT}/$1.php -f RewriteRule ^([^\.]+)$ $1.php [L] ErrorDocument 403 /404 ErrorDocument 404 /404
规则说明:
- 关闭Multiviews功能,避免Apache自动触发后缀匹配跳转
- 重写前置判断仅当站点根目录下存在对应名称的
.php文件时,才会执行重写逻辑 - 重写规则仅匹配不带点的路径,不会匹配带有后缀的资源请求,同时属于内部重写,不会触发浏览器地址栏跳转
- 若请求的无后缀路径无对应的
.php文件(例如请求/robots且不存在robots.php时),会直接返回404,不会自动匹配.txt等其他后缀的文件
内容的提问来源于stack exchange,提问作者test
相关产品推荐
相关产品推荐

