nginx:如何使用自訂狀態代碼重寫請求? (200 而不是 301)

nginx:如何使用自訂狀態代碼重寫請求? (200 而不是 301)

出於搜尋引擎優化的目的,我被要求配置重定向。使用 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。

相關內容