【问题标题】:NGINX proxy url with hash '#' character带有哈希“#”字符的 NGINX 代理 URL
【发布时间】:2019-11-30 06:02:54
【问题描述】:

我想公开将 URL abc.domain.com 路由到内部 URL http://host.local:2324/#12345。 “#12345”是固定的,不能更改。

服务器名称 abc.domain.com
proxy_pass http://host.local:2324/#12345
sub_filer host.local:2324/#12345 abc.domain.com

然而,在 Nginx 中,cmets 由 # 暗示。因此,规则 proxy_pass 和 sub_filter 被切断。 很遗憾,无法实现带有 "%23" 的掩码。

这里有人有想法吗?

【问题讨论】:

  • 如果您能解释为什么不能使用%23,将会很有帮助。
  • 您是否尝试过在包含# 字符的值周围使用双引号?
  • UI 服务应用程序不理解 %23。既然我没有办法改变任何东西,它必须没有它。
  • 我不知道你所说的“UI服务应用程序”是什么意思,但%23是在nginx中转义'#'字符的方式。

标签: nginx nginx-reverse-proxy


【解决方案1】:

在 url 中不能使用显式 #。 当您在浏览器中输入http://localhost:2324/#12345. 时,浏览器将打开# 之前的页面,然后找到css id #12345 并移动到它们。 如果你想在url中使用#,你必须解码url,如http://localhost:2324/%2312345

这是工作 url 重定向 nginx 代码:

rewrite ^/([^\#]+)\#([^\#]+)$ /proxy_url/$1#$2 redirect;

Nginx: Escaping # in url rewrite

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-15
    • 2016-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-16
    相关资源
    最近更新 更多