Alleine für SEO sollte man sich für eine Variante seiner Webseite entscheiden, WWW oder non-WWW. In Varnish bildet man dies wie folgt ab.
Punkt 1: Varnish 3.0
Fügt folgenden Code in eurer /etc/varnish/default.vcl hinzu und ersetzt DOMAIN.de mit eurer Domain.
sub vcl_recv {
# Redirect non-WWW to WWW
if (req.http.host == "DOMAIN.de") {
set req.http.host = "www.DOMAIN.de";
error 750 "http://" + req.http.host + req.url;
}
}
sub vcl_error {
# Redirect non-WWW to WWW
if (obj.status == 750) {
set obj.http.Location = obj.response;
set obj.status = 301; return(deliver);
}
}
Punkt 2: Varnish 4.0
Fügt folgenden Code in eurer /etc/varnish/default.vcl hinzu und ersetzt DOMAIN.de mit eurer Domain.
sub vcl_recv {
# Redirect non-WWW to WWW
if (req.http.host ~ "^DOMAIN.de") {
return (synth (750, ""));
}
}
sub vcl_synth {
# Redirect non-WWW to WWW
if (resp.status == 750) {
set resp.status = 301;
set resp.http.Location = "http://www.DOMAIN.de" + req.url;
return(deliver);
}
}
Punkt 3: Reload und Überprüfung
Nach einem Reload von Varnish werden die Änderungen übernommen.
/etc/init.d/varnish reload
Das Ergebnis sollte wie folgt aussehen.
curl -I http://DOMAIN.de/de/kontakt
HTTP/1.1 301 http://www.DOMAIN.de/de/kontakt
Server: Varnish
Location: http://www.DOMAIN.de/de/kontakt
Date: Tue, 18 Nov 2014 09:19:11 GMT
Connection: close
X-Cache: MISS