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

Apache mod_rewrite:移除文档根目录及所有URI的末尾斜杠

解决Apache虚拟主机中移除所有URI末尾斜杠(含文档根)的循环问题

核心问题根源

之前的规则出现无限循环,本质是Apache的mod_dir模块默认会给目录(包括文档根目录)自动添加末尾斜杠——即使你通过Rewrite规则移除了斜杠,mod_dir又会强制补回去,形成循环。

有效配置方案

在你的Apache虚拟主机(<VirtualHost>)配置块中添加以下内容:

# 关闭mod_dir自动添加末尾斜杠的默认行为
DirectorySlash Off

RewriteEngine On

# 处理文档根目录的末尾斜杠(精确匹配访问 / 的情况)
RewriteRule ^/$ https://%{HTTP_HOST} [R=301,L]

# 处理其他非首页路径的末尾斜杠
RewriteRule ^(.+)/$ https://%{HTTP_HOST}$1 [R=301,L]

规则说明

  1. DirectorySlash Off:必须优先添加这一行,从根源阻止Apache自动补斜杠的行为,这是解决循环的关键。
  2. 首页规则:精确匹配^/$(即访问https://example.com/),直接重定向到不带斜杠的域名,L标志确保这条规则执行后终止后续匹配。
  3. 其他路径规则:用^(.+)/$匹配非空且以斜杠结尾的路径(比如/blog/、/about/us/),捕获斜杠前的所有内容($1),重定向到不带斜杠的版本。(.+)确保不会匹配首页的空路径,避免规则冲突。

注意事项

  • 测试阶段建议用R=302临时重定向,确认规则生效后再改为R=301永久重定向(避免搜索引擎缓存错误规则)。
  • 确保已启用mod_rewrite模块,Fedora下可通过httpd -M | grep rewrite验证。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 14:35:14