使用 mod_rewrite 将 URL 中的 %23 替换为#
Replacing %23 in URL with # using mod_rewrite
我在 tomcat 中有一个 GWT 应用程序在 linux 上的 apache 后面。这使用从 URL 传递的参数维护来自 URL 的入站状态。参见示例:
https://www.example.com/#anchor1?param1=foo¶m2=bar
我使用第三方警报包将 URL 推送到客户端,但在此过程中它将 URL 编码为
https://www.example.com/%23anchor1?param1=foo¶m2=bar
这意味着我收到 404 错误。
我到处寻找解决方案,但没有一个明确可行的答案。
据我所知,我需要一个简单的规则,将 URL 中所有出现的 %23 替换为 #,但似乎没有就可行的东西达成明确的共识(相信我,我什么都试过了)。
执行此操作的 mod_rewrite 规则是什么?
提前致谢。
当mod_rewrite看到它时,#已被解码。普通 # 永远不会发送到服务器,所以它很简单:
RewriteRule ^(.*#.*) / [R,NE]
我假设浏览器需要# 之后的内容,因此您必须重定向。 "NE" 阻止 # 在输出时被编码。
我在 tomcat 中有一个 GWT 应用程序在 linux 上的 apache 后面。这使用从 URL 传递的参数维护来自 URL 的入站状态。参见示例:
https://www.example.com/#anchor1?param1=foo¶m2=bar
我使用第三方警报包将 URL 推送到客户端,但在此过程中它将 URL 编码为
https://www.example.com/%23anchor1?param1=foo¶m2=bar
这意味着我收到 404 错误。
我到处寻找解决方案,但没有一个明确可行的答案。
据我所知,我需要一个简单的规则,将 URL 中所有出现的 %23 替换为 #,但似乎没有就可行的东西达成明确的共识(相信我,我什么都试过了)。
执行此操作的 mod_rewrite 规则是什么?
提前致谢。
当mod_rewrite看到它时,#已被解码。普通 # 永远不会发送到服务器,所以它很简单:
RewriteRule ^(.*#.*) / [R,NE]
我假设浏览器需要# 之后的内容,因此您必须重定向。 "NE" 阻止 # 在输出时被编码。