簡體   English   中英

清漆重定向循環(嘗試將非www發送到www)

[英]Varnish redirect loop (trying to send non-www to www)

我正在嘗試將沒有'www'的請求重定向到Varnish中的www.mydomain.com(一個WordPress網站),但是由於某種原因只能創建無限循環的重定向。 在我的Varnish vcl中,我有:

sub vcl_recv {
    if (req.http.host == "example.com") {
        set req.http.host = "www.example.com";
        error 750 "http://" + req.http.host + req.url;
    }

    ...

和:

sub vcl_error {
    if (obj.status == 750) {
        set obj.http.Location = obj.response;
        set obj.status = 301;
        return(deliver);
    }
}

(摘自我在網上看到的示例)。 在Fiddler中,響應似乎表明Varnish做對了:

HTTP/1.1 301 http://www.example.com/
Server: Varnish
Location: http://example.com/
Accept-Ranges: bytes
Date: Wed, 17 Dec 2014 12:42:56 GMT
X-Varnish: 1488505994
Age: 0
Via: 1.1 varnish
Connection: close

但盡管如此,它一直循環直到瀏覽器放棄為止。 我在俯視什么? 任何提示,不勝感激。

托比

似乎您使用的是Varnish <4,因為在4中語法明顯不同。

但是問題是,即使您的vcl似乎正確,日志也似乎顯示了相反的情況,將http://www.example.com/的請求重定向到http://example.com/ ,以及更高版本您說您的主要域名是www。 vcl和wordpress在主要領域上存在分歧。

確保您正在重新加載並使用正確的vcl,並確保您已在vcl中編寫了正確的主機並且wordpress同意。

如果找不到問題,請顯示varnishlog跟蹤。

暫無
暫無

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

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