
出於搜尋引擎優化的目的,我被要求配置重定向。使用 30x 狀態代碼進行重定向沒有問題且有效:
location ^/home$ {
return 301 /foo/bar/index.html;
};
但 301 重定向似乎不足以抓取頁面。所以我正在嘗試這樣的事情:
location ^/home$ {
return 200 /foo/bar/index.html;
}
但這只會產生字串“/foo/bar/index.html”作為回應。是否可以重定向帶有 200 狀態代碼的請求?
答案1
對於這個答案,可能沒有設定 nginx 的解決方案。 Http 就不是這樣運作的。在我們的例子中,我們將 uri 映射到應用程式內部,並避免使用 nginx 重寫 uri
答案2
location ^/home$ {
rewrite ^/home$ /foo/bar/index.html last;
return 200;
}
“rewrite”指令用於將請求的 URL 從“/home”更改為“/foo/bar/index.html”。 「last」參數告訴 nginx 停止處理目前的位置指令集並繼續處理重寫的 URL。然後,使用「return」指令將狀態碼設定為 200。