如何通过.htaccess移除URL中的.php后缀实现无后缀访问
可用的.htaccess配置
首先确认Apache已开启mod_rewrite模块,且站点配置的AllowOverride参数设置为All,保证.htaccess规则可以生效。
将以下代码写入站点根目录的.htaccess文件即可:
RewriteEngine On # 若站点部署在子目录,请取消注释并修改下面这行的路径 # RewriteBase /subdir/ # 内部重写:将 /user/xxx 映射到 user.php/xxx 处理,地址栏不变 RewriteRule ^user/(.*)$ user.php/$1 [L] # 可选:旧地址自动301跳转到新地址,避免旧链接失效 RewriteCond %{THE_REQUEST} /user\.php/([^\s]+) [NC] RewriteRule ^user.php/(.*)$ /user/$1 [R=301,L,NC]
配置说明
- 你的现有PHP路由逻辑不需要做任何修改,重写规则会把新地址的请求透传给原有PHP逻辑处理
- 301跳转规则可以根据需求选择是否启用,启用后用户访问
/user.php/login会自动跳转至/user/login,更符合预期也利于SEO
内容的提问来源于stack exchange,提问作者Brajlal
相关产品推荐
相关产品推荐

