我有一个类似于以下内容的重写规则
rewrite ^/([a-zA-Z0-9_]+)$ /mysite/#!/$1/login;
想法是像这样的短代码
/foo
被重定向到
/mysite/#!/foo/login
但是nginx重定向到:
/mysite/%23!/foo/login
如何防止URL编码在重写中发生?
答案 0 :(得分:1)
我可以通过使用反向代理来重现此问题。
Nginx实际上正在做正确的事情,因为#
是reserved character for URIs,并且标识fragment identifier的开头。
片段标识符仅供浏览器使用,服务器通常不会在请求的URL中接收。我不确定您的Tomcat服务器如何首先接收包含裸露#
的请求。