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

.htaccess Rewrite规则不符合预期,请求修正方案

问题解决:修正Rewrite规则以完整捕获URL路径

问题原因

原规则RewriteRule ^feed/(.+)$ rss/$1 [L]在处理包含https:/(单斜杠)的URL时,无法完整保留feed/之后的内容,导致重定向结果被截断。这是因为Apache mod_rewrite默认会对路径中的特殊字符(如冒号、斜杠)进行解析或转义,干扰了正则捕获的完整性。

解决方案

可以通过两种方式修正规则:

方案1:利用REQUEST_URI变量捕获完整路径

直接基于请求的完整URI进行匹配,避免正则解析的干扰:

RewriteCond %{REQUEST_URI} ^/feed/(.*)$
RewriteRule ^ /rss/%1 [L,NE]
  • %{REQUEST_URI}包含了从根目录开始的完整请求路径,确保能捕获feed/之后的所有内容
  • NE(NoEscape)标志确保特殊字符不被额外转义,保留原始URL结构

方案2:添加NE标志并调整正则

修改原规则,添加NE标志即可解决转义问题:

RewriteRule ^feed/(.*)$ rss/$1 [L,NE]
  • 将.+替换为.*(两者在该场景下功能相近,但.*更明确表示匹配任意字符)
  • NE标志是核心,防止Apache对捕获的内容进行转义,保证完整保留feed/之后的URL部分

验证结果

使用上述任一规则后,对于URL https://example.com/feed/https:/feeds.buzzsprout.com/1560791.rss,会正确重定向到:

https://example.com/rss/https:/feeds.buzzsprout.com/1560791.rss

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 10:17:10