Varnish Weiterleitung non-WWW auf WWW
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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | 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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | 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.
1 | /etc/init.d/varnish reload |
Das Ergebnis sollte wie folgt aussehen.
1 2 3 4 5 6 7 8 | 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 |
0