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.

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

 

Dominion

Dominion

Linux Systemadministrator

Das könnte Dich auch interessieren …

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.