移除URL中的.html后缀后,原有带.html的旧链接是否还能正常访问?
关于配置移除.html后缀规则后旧链接可用性的解答
只要你按照正确逻辑编写.htaccess重写规则,原有带.html后缀的旧链接完全可以正常访问,不会出现404错误。
规则实现逻辑
你只需要配置两类规则即可同时满足「无后缀URL可访问」和「旧链接可用」两个需求:
- 内部重写:用户访问无后缀URL时,服务器内部映射到对应的
.html文件返回内容,用户地址栏不会发生变化,也不会干预带后缀的请求 - (可选)重定向:如果希望统一URL格式,可额外配置将带.html后缀的请求301重定向到无后缀版本,旧链接点击后会自动跳转到新格式地址,不会出现无法访问的情况
完整配置代码
首先确认你的Apache服务器已经启用mod_rewrite模块,在.htaccess文件中添加以下代码即可:
RewriteEngine On RewriteBase / # 处理无后缀URL请求:映射到对应.html文件 RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}\.html -f RewriteRule ^(.*)$ $1.html [L] # 可选:带.html后缀的请求重定向到无后缀版本,不需要的话可以删除这段 RewriteCond %{THE_REQUEST} \.html [NC] RewriteRule ^(.*)\.html$ /$1 [R=301,L]
注意事项
- 配置前请先备份原有
.htaccess文件,避免配置错误影响站点正常运行 - 配置301重定向后测试时请清空浏览器缓存,避免本地缓存的旧重定向规则影响测试结果
- 如果你删除了可选的重定向代码,用户访问带.html后缀的链接会直接返回内容,地址栏将保留原有后缀格式
内容的提问来源于stack exchange,提问作者everythingtrains
相关产品推荐
相关产品推荐

