如何配置.htaccess规则实现仅根目录.htm文件移除扩展名跳转
.htaccess配置实现方案
首先确认服务器已开启Apache的mod_rewrite模块,且站点配置中AllowOverride参数已设置为All,允许.htaccess文件生效。
将以下规则添加到站点根目录的.htaccess文件中即可:
RewriteEngine On RewriteRule ^([^/]+)\.htm$ /$1/ [L,R=301,NC]
规则说明
RewriteEngine On:开启重写引擎,是所有重写规则生效的基础前提- 匹配规则
^([^/]+)\.htm$:仅匹配路径中不包含斜杠的.htm文件,也就是仅作用于根目录下的.htm文档,不会命中任何子目录内的.htm文件,括号部分会捕获去掉.htm后缀的文件名 - 重写目标
/$1/:将请求跳转到捕获的文件名路径后加末尾斜杠的地址 - 末尾标记说明:
L:本条规则匹配成功后不再执行后续的重写规则,避免规则冲突R=301:返回301永久跳转状态码,利于搜索引擎更新收录的页面地址NC:匹配时忽略大小写,同时兼容大写的.HTM后缀文件
注意事项
- 修改.htaccess前请先备份原有文件,避免配置错误导致站点访问异常
- 测试阶段可以先将
R=301改为R=302使用临时跳转,确认规则完全符合预期后再改回301,避免浏览器缓存错误的跳转规则影响后续测试
内容的提问来源于stack exchange,提问作者user3161924
相关产品推荐
相关产品推荐

