Nginx重写URL规则具有页面部分的特殊字符(#)

问题描述 投票:0回答:2

我需要帮助重写nginx配置中的URL,其工作方式如下:

/ products /#details to / produce /#items

但它没有工作,因为#正在创造一个问题。

注意:URL中的#表示页面部分

例如www.test.com/products/#details应重定向到www.test.com/produce/#items

nginx nginx-reverse-proxy nginx-config
2个回答
0
投票

使用nginx是不可能的,因为浏览器不会向服务器发送主题标签(#details)。因此,您无法在nginx或任何其他Web服务器中重写。

换句话说,只有浏览器可以使用主题标签,因此您必须使用Javascript处理它。服务器无法读取它。

http://tools.ietf.org/html/rfc2396#section-4

当URI引用用于对所标识的资源执行检索操作时,通过交叉线(“#”)字符与URI分离的可选片段标识符包括在检索之后由用户代理解释的附加参考信息。行动已成功完成。因此,它不是URI的一部分,但通常与URI结合使用。


0
投票

没有办法做这个重写。 #及其前面的所有内容都不会发送到服务器,它完全在客户端处理。

© www.soinside.com 2019 - 2024. All rights reserved.