如何通过.htaccess将所有路由重定向到对应.html文件并去除URL尾部斜杠
.htaccess 配置实现方案
- 前置要求:
- 确认 Apache 已开启
mod_rewrite模块 - 站点虚拟主机配置中
AllowOverride参数已设置为All,允许.htaccess 规则生效
- 确认 Apache 已开启
完整配置代码
RewriteEngine On # 移除URL尾部斜杠(排除真实存在的目录,避免影响正常目录访问) RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)/$ /$1 [L,R=301] # 无后缀路径重定向到对应.html文件(排除真实存在的文件、目录,避免覆盖现有资源访问) RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([^.]+)$ /$1.html [L,R=301]
规则说明
- 尾部斜杠移除规则:仅对非真实目录的请求生效,所有带尾部斜杠的路径会301重定向到无斜杠版本,保证URL格式统一适配后续重写规则
- .html后缀重定向规则:仅对非真实存在的文件、目录请求生效,将无后缀的访问路径301重定向到对应名称的.html文件
- 若不需要浏览器地址栏显示.html后缀,可删除第二条规则中
R=301参数,改为服务器内部重写,用户侧URL保持无后缀格式
内容的提问来源于stack exchange,提问作者uranium235
相关产品推荐
相关产品推荐

