![](/img/trans.png)
[英]How to Redirect a non-www to www with Mutiple Sites? (Nginx and Varnish)
[英]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.