簡體   English   中英

是否可以在 nginx 中重寫為包含片段的 URL?

[英]Is it possible to rewrite to a URL with a fragment in it in nginx?

例如

重寫^/page /#page;

由於片段的性質(從未發送到服務器等),我不確定這是否可能。 但是由於我正在重寫 TO one,而不是 FROM one,我認為它應該有效嗎?

在這種情況下,我如何編碼/轉義該哈希符號,以便它不會開始評論..?

謝謝!

如您所知,片段由瀏覽器使用,不會發送到服務器。

但是您可以使用nginx將請求重寫為包含片段的新 URI,但只有將新 URI 發送到瀏覽器時才有意義,即使用 HTTP 3xx 響應。

當提供redirect (302) 或permanent (301) 標志(或替換字符串以方案開頭 - 請參閱此文檔了解更多信息)時, rewrite指令將生成 HTTP 3xx 響應。

例如:

rewrite ^/page /#page redirect;

添加引號,可能會有所幫助。 我在 Docker Nginx 最新鏡像 (1.17.4) 中嘗試過

rewrite ^/page "/#page" redirect;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM