【问题标题】:Replacing %23 in URL with # using mod_rewrite使用 mod_rewrite 将 URL 中的 %23 替换为 #
【发布时间】:2016-02-28 13:02:58
【问题描述】:

我在 linux 上的 apache 后面的 tomcat 中有一个 GWT 应用程序。这使用从 URL 传递的参数来维护从 URL 入站的状态。例如:

https://www.example.com/#anchor1?param1=foo&param2=bar

我使用第三方警报包将 URL 推送到客户端,但在此过程中它会将 URL 编码为

https://www.example.com/%23anchor1?param1=foo&param2=bar

这意味着我遇到了 404 错误。

我已经搜索了高和低的解决方案,但没有明确的答案。

据我所知,我需要一个简单的规则,将 URL 中所有出现的 %23 替换为 #,但似乎对可行的方法没有明确的共识(相信我,我已经尝试了所有方法)。

执行此操作的 mod_rewrite 规则是什么?

提前致谢。

【问题讨论】:

    标签: apache mod-rewrite gwt


    【解决方案1】:

    当 mod_rewrite 看到它时,# 已被解码。正常 # 永远不会发送到服务器,所以很简单:

    RewriteRule ^(.*#.*) /$1 [R,NE]
    

    我假设浏览器需要 # 之后的内容,所以你必须重定向。 "NE" 阻止 # 在输出时被编码。

    【讨论】:

    • 非常感谢您修复了它。我将它稍微修改为 RewriteRule ^(.*#.*) $1 [R,NE]
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-15
    • 2017-03-26
    • 2012-09-25
    • 2011-10-03
    • 1970-01-01
    相关资源
    最近更新 更多