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

是否可以在nginx中重写为包含片段的URL?,nginx,Nginx,例如 重写^/page/#page 我不确定这是否可能,因为片段的性质(从未发送到服务器等)。但既然我是重写成一个,而不是从一个,我觉得应该行得通吗 在这种情况下,我如何编码/转义该散列符号,使其不会开始注释 谢谢 如您所知,片段由浏览器使用,不会发送到服务器 但是,您可以使用nginx将请求重写为包含片段的新URI,但只有将新URI发送到浏览器(即使用HTTP 3xx响应)时才有意义 当提供了重定向(302)或永久(301)标志(或替换字符串以方案开始-有关更多信息,请参阅)时,重写指令将生成

例如

重写^/page/#page

我不确定这是否可能,因为片段的性质(从未发送到服务器等)。但既然我是重写成一个,而不是从一个,我觉得应该行得通吗

在这种情况下,我如何编码/转义该散列符号,使其不会开始注释


谢谢

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

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

当提供了
重定向
(302)或
永久
(301)标志(或替换字符串以方案开始-有关更多信息,请参阅)时,
重写
指令将生成HTTP 3xx响应

例如:

rewrite ^/page /#page redirect;

添加引号可能会有所帮助。我尝试了Docker Nginx的最新图像(1.17.4)


它需要是一个外部重定向-因此将
重定向
永久
后缀添加到
重写
语句中。您能解释一下在这种情况下“外部”是什么意思吗?我该如何对哈希/磅符号进行编码?很好,谢谢。我如何避免开始评论呢?哦,好吧,事实证明这不是我必须担心的事情!
rewrite ^/page "/#page" redirect;