nginx重定向到没有URL编码的hashbang URL

时间:2019-03-01 03:36:39

标签: nginx

我有一个类似于以下内容的重写规则

rewrite ^/([a-zA-Z0-9_]+)$ /mysite/#!/$1/login;

想法是像这样的短代码

/foo

被重定向到

/mysite/#!/foo/login

但是nginx重定向到:

/mysite/%23!/foo/login

如何防止URL编码在重写中发生?

1 个答案:

答案 0 :(得分:1)

我可以通过使用反向代理来重现此问题。

Nginx实际上正在做正确的事情,因为#reserved character for URIs,并且标识fragment identifier的开头。

片段标识符仅供浏览器使用,服务器通常不会在请求的URL中接收。我不确定您的Tomcat服务器如何首先接收包含裸露#的请求。