You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用.htaccess移除.html后缀并支持带/不带斜杠访问时遇500错误

解决.htaccess移除.html扩展名时带斜杠访问500错误的问题

你的代码触发500错误的核心原因:当请求末尾带斜杠(如/page/)时,原最后一条规则会把REQUEST_URI(即/page/)直接拼接.html,生成/page/.html这种无效路径,进而引发服务器重写循环,超过次数限制后抛出内部错误。

以下是修正后的代码,可同时满足移除.html扩展名、支持带/或不带/访问的需求:

DirectorySlash Off
Options +FollowSymLinks -MultiViews -Indexes
RewriteEngine On
RewriteBase /

# 重定向带.html的URL到不带扩展名的版本(永久重定向,利于SEO)
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.html\s [NC]
RewriteRule ^ %1 [R=301,L,NC]

# 可选:统一URL格式,将带斜杠的请求重定向到不带斜杠的版本
# 如果需要保留带斜杠访问,可删除此段
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ $1 [R=301,L]

# 内部重写:将不带.html的请求(无论是否带斜杠)映射到对应.html文件
# 排除实际存在的文件和目录,避免重写循环
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/?$ $1.html [L]

关键修正说明:

  • 新增实际文件/目录的排除条件,避免对已存在的资源执行无效重写
  • 最后一条规则用^(.*)/?$匹配带或不带斜杠的请求,自动去掉末尾斜杠后拼接.html,确保路径有效
  • 可选的斜杠统一规则可让URL格式更整洁,也可根据需求保留带斜杠的访问方式

内容的提问来源于stack exchange,提问作者user19479189

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 10:24:48