Apa­che mod_rewrite Über­sicht: So lei­ten Sie Anfragen weiter

Umleitungen für den Apache Webserver

Vie­le Admi­nis­tra­to­ren und Kun­den wol­len immer wie­der die­sel­ben Wei­ter­lei­tun­gen ein­rich­ten. Des­halb stel­len wir hier die wich­tigs­ten Mög­lich­kei­ten zusam­men wie man in Apa­che mit Hil­fe des Rewri­te Moduls Wei­ter­lei­tun­gen ein­rich­ten kann. Falls eine wich­ti­ge Mög­lich­keit fehlt, schrei­ben Sie uns das ger­ne in den Kom­men­ta­ren oder per E‑Mail.

4.7/5 – (73 votes) 

Wei­ter­lei­tung von http auf https

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Von oben nach unten:

  1. Rewri­teEn­gi­ne anschal­ten. Falls Sie bereits die Rewri­teEn­gi­ne akti­viert haben, muss sie hier nicht zwin­gend noch ein­mal ange­schal­tet wer­den. Wir haben aber oft Vir­tu­al­Hosts auf Port 80 lau­fen, deren ein­zi­ge Auf­ga­be es ist die Anfragen an den Port 443 mit der SSL Ver­schlüs­se­lung wei­ter zu leiten.
  2. Die Bedin­gung sagt, „wenn HTTPS nicht an ist“, dann füh­re die Regel aus.
  3. Zei­le:
    1. Die voll­stän­di­ge Anfra­ge (.*) soll ersetzt werden.
    2. Durch ein Leer­zei­chen getrennt folgt die Ziel­adres­se wohin wei­ter­ge­lei­tet wer­den soll.
    3. In den ecki­gen Klam­mern ste­hen spe­zi­el­le Anwei­sung, hier, dass mit einem per­ma­nent Redi­rect (R=301) wei­ter­ge­lei­tet wer­den soll und, dass dies die letz­te Regel (L) ist, die aus­ge­führt wer­den soll.

Auf einen bestimm­ten Host­na­men weiterleiten

Die Wei­ter­lei­tung auf defi­nier­te Host­na­men hilft dabei, Dupli­ca­te Con­tent zu ver­mei­den. Damit sorgt man dafür, dass die eige­ne Sei­te z.B. nur über www.adresse-im-netz.de und nicht über adresse-im-netz.de auf­ge­ru­fen wer­den kann, indem alle Anfragen an andresse-im-netz.de an www wei­ter­ge­lei­tet werden.

  RewriteEngine On
  RewriteCond %{HTTP_HOST} !^www\.adresse-im-netz\.de$ [NC]
  RewriteRule ^/(.*)$ http://www.adresse-im-netz.de/$1 [L,R=301]

Von oben nach unten:

  1. Rewri­te Engi­ne anschalten
  2. Bedin­gung definieren 
    1. HTTP_HOST, also der auf­ge­ru­fe­ne Ser­ver­na­me wird analysiert
    2. Das Aus­ru­fe­zei­chen negiert den Ver­gleich, bedeu­tet hier also HTTP_HOST ist nicht im nach­fol­gen­den regu­lä­ren Aus­druck enthalten
    3. Das Caret (^) gibt an, dass wir von Anfang an prüfen
    4. Inner­halb eines regu­lä­ren Aus­dru­ckes ist der Punkt (.) ein
    5. Das Dol­lar­zei­chen ($) gibt an, dass bis zum Ende geprüft wird

Von einem bestimm­ten Host­na­men auf ein Unter­ver­zeich­nis einer ande­ren Sei­te weiterleiten

Wenn Sei­ten in bestehen­de Sei­ten z.B. als Kate­go­rien inte­griert wer­den, ist es nütz­lich von dem bis­he­ri­gen Host­na­men der alten Sei­te auf die Kate­go­rie­sei­te der neu­en Sei­te weiterzuleiten.

RewriteEngine On
RewriteCond %{HTTP_HOST} ^blumen\.adresse-im-netz\.de$ [NC]
RewriteRule ^$ /blumen [L,R=301]

Fazit

Das ist nur ein kur­zer Ein­blick in die Welt des sehr mäch­ti­gen mod_rewrite Moduls von Apa­che. Wenn Sie Fra­gen oder spe­zi­el­le Anfor­de­run­gen haben, schrei­ben Sie doch ger­ne einen Kom­men­tar oder eine E‑mail.

Schreibe einen Kommentar