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

SiteGround主机.htaccess含编码空格文件名重定向失效求助

解决带空格文件的.htaccess重定向问题

你的问题出在Apache对请求路径的解码逻辑,不是SiteGround的服务器配置问题,也不是规则语法错误,而是匹配的路径格式不对。

Apache处理请求时,会自动把URL里的%20解码成实际空格,再去匹配Redirect规则。你原来写的%20是编码后的路径,但Apache匹配的是解码后的原始路径,所以规则没命中。

给你几个可行的解决方法:

方法1:直接用空格代替%20

把规则里的%20换成实际空格,保持引号包裹路径:

Redirect permanent "/pdf/Adam Teachings.pdf" "/pdf/Adam.pdf"

方法2:用RedirectMatch正则匹配(更灵活)

用正则表达式同时匹配空格和%20,避免编码差异问题:

RedirectMatch permanent "^/pdf/Adam( |%20)Teachings\.pdf$" "/pdf/Adam.pdf"

或者用\s匹配所有空白字符(包括空格):

RedirectMatch permanent "^/pdf/Adam\sTeachings\.pdf$" "/pdf/Adam.pdf"

方法3:用RewriteRule(适合复杂规则场景)

如果你的.htaccess已启用mod_rewrite,也可以用RewriteRule实现,优先级更高:

RewriteEngine On
RewriteRule ^pdf/Adam( |%20)Teachings\.pdf$ /pdf/Adam.pdf [R=301,L,NE]

NE参数用于避免Apache把重定向目标里的空格重新编码,保证URL正常显示。

重要提醒

测试前一定要清空浏览器缓存,因为301永久重定向会被浏览器缓存,旧缓存可能导致你看不到新规则的效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 14:24:56