是否可以在nginx中重写为包含片段的URL?

时间:2017-10-06 14:37:31

标签: nginx

E.g。

重写^ / page / #page;

由于片段的性质(从未发送到服务器等),我不确定这是否可行。但是既然我正在重写一个,而不是一个,我认为它应该有用吗?

在这种情况下,我如何编码/转义该哈希符号,以便它不会启动注释..?

谢谢!

2 个答案:

答案 0 :(得分:1)

如您所知,片段由浏览器使用,不会发送到服务器。

但您可以使用nginx将请求重写为包含片段的新URI,但只有在将新URI发送到浏览器时才会有意义,即使用HTTP 3xx响应。

rewrite指令将在提供redirect(302)或permanent(301)标志时生成HTTP 3xx响应(或替换字符串以方案开头 - 请参阅{ {3}}更多)。

例如:

rewrite ^/page /#page redirect;

答案 1 :(得分:0)

添加引号可能会有所帮助。我在Docker Nginx最新映像(1.17.4)中尝试过

rewrite ^/page "/#page" redirect;