Nginx 重写规则请教

2016-11-16 00:07:25 +08:00
 coagent
如何用 rewrite 重写网址:
https://weixin.domain.com/m/#!/sethelp/setindex

到:

https://www.domain.com/sethelp/setindex

试了 N 遍和 N 种方法,那个 #!字符匹配老是有问题。

1. rewrite /m/#!/(.*)$ https://www.domain.com/$1 break;
2. rewrite /m/([#!]+)/(.*)$ https://www.domain.com/$2 break;

3.

location ^~/m/ {
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host www.domain.com;
proxy_redirect off;
rewrite /m/([#!]+)/(.*)$ /$1 break;
proxy_pass https://www.domain.com/;
}


请大神帮忙看如何解决?
2684 次点击
所在节点    NGINX
3 条回复
XiaoxiaoPu
2016-11-16 00:23:47 +08:00
http://www.ruanyifeng.com/blog/2011/03/url_hash.html

服务器收到的请求不包含 "#" 及后面的部分。
lhbc
2016-11-16 00:30:39 +08:00
#后面的是交给浏览器和 js 处理的,浏览器请求并不会发送#后面的内容

看你这规则,你应该用 js 来处理
coagent
2016-11-16 00:35:08 +08:00
@lhbc @XiaoxiaoPu 秒懂了,谢谢!刚才配置时搞晕了...

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/320801

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX