NGINX,尝试将一个URL重定向/重写到另一个URL但忽略参数包含"#"



我正在尝试将URL重写/重定向到另一个URL,但是当参数中有"#"时,它会拉出并显示在新URL中,例如。

https://blah.co.uk/ep/doc/index.jsp#/download需要重写为https://blah.co.uk/Download/?Mode=doc

现在无论我似乎尝试什么,我总是得到重写的 URL 作为https://blah.co.uk/Download/?Mode=doc#/download

它似乎总是带来"#"及其之后的所有内容。

这是因为哈希部分或 URL(在您的情况下#/download)根本不是从 Web 服务器请求的,所以 nginx 从未见过它,它不能成为 URL 重写的主题。您可以查看此问题以获取更多详细信息。URL的哈希部分仅用于客户端处理,摆脱它的唯一方法AFAIK是使用一些客户端JavaScript,例如:

if (window.history.pushState) {
    window.history.pushState('', '/', window.location.pathname + window.location.search);
} else {
    window.location.hash = '';
}

最新更新