2016-07-20 42 views
0

我想強制在清漆和apache後的www域。使用.htaccess強制登錄清漆

安裝清漆重寫規則後沒有進行重定向domain.com到www.domain.com的

我:

  • 的Apache 2.4.7
  • 清漆3.0.5
  • 幾個虛擬主機對於多個域

我的.htaccess指令工作得很好,直到我安裝了v arnish。

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]+$ 
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [L,R=301] 

我已經試着尋找解決方案,但沒有成功。

在我的VCL我只配置這一點:

backend default { 
    .host = "127.0.0.1"; 
    .port = "8080"; 
} 

所有其他的代碼註釋。

+0

你能張貼您的VCL? –

+0

我在帖子中添加了vcl。基本上我只配置了後端。 – ndsh

回答

0

更新您的規則:

RewriteEngine on 
RewriteCond %{HTTP_HOST} ^domain\.com 
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=permanent,L] 

並不理想,因爲它硬編碼的域名,但應該工作:)

的理由,是HTTP_HOST包含端口號和您的重定向未辦理它。

另外,從HTTP_HOST變量VCL使用這種帶端口號:

sub vcl_recv { 
    # Normalize the header, remove the port 
    set req.http.host = regsub(req.http.host, ":[0-9]+", ""); 
} 
+0

謝謝你的答案。不幸的是以上都沒有奏效。其實我希望對域名進行硬編碼應該可行,但事實並非如此。 – ndsh