301 Weiterleitungen mittels .htaccess

Auf die­sem Blog sind mitt­ler­wei­le eini­ge Bei­trä­ge erschie­nen, in denen von einer 301-Wei­ter­lei­tung die Rede ist. All die­se Wei­ter­lei­tun­gen wer­den über die .htac­cess-Datei umge­setzt. In die­sem Bei­trag wer­den die jewei­li­gen Codes gebün­delt.

Wozu überhaupt einen Redirect einrichten?

Eine 301-Wei­ter­lei­tung benö­tigt man immer dann, wenn sich die Links einer Web­site ändern. Das gilt natür­lich nur für Web­sites, die schon im Netz sind und nach­träg­lich ver­än­dert wer­den. Damit alle bis zur Ände­rung akti­ven Links ihre Gül­tig­keit behal­ten, wird eine Umlei­tung vom alten zum neu­en Link ein­ge­rich­tet. Wer dies nicht macht, wird User wie Such­ma­schi­nen ver­grau­len, weil die­se eine 404-Sei­te (Sei­te nicht gefun­den) ange­zeigt bekom­men. Gleich­zei­tig sinkt das Ran­king der Such­ma­schi­nen und die Sei­te taucht weni­ger oft in den Such­ergeb­nis­sen auf.

Wo finde ich die .htaccess-Datei?

Die .htac­cess-Datei liegt im obers­ten Ver­zeich­nis der Web­sei­te und wird von den Brow­sern als ers­tes aus­ge­le­sen. Auch bei einem Word­Press-Blog liegt die­se Datei auf der obers­ten Ebe­ne. Word­Press schreibt eben­falls Code in die­se Datei, der nicht ver­än­dert wer­den darf, wenn eine Wei­ter­lei­tung ein­ge­rich­tet wird. Die Wei­ter­lei­tung wird zuerst in die Datei ein­ge­fügt.

Über ein ftp-Pro­gramm wird auf das Ver­zeich­nis zuge­grif­fen und die Datei her­un­ter­ge­la­den. Exis­tiert noch kei­ne .htac­cess-Datei, kann die­se mit einem Text­edi­tor ein­fach erstellt wer­den. Dabei gilt zu beach­ten, dass die­se Datei kei­ne Datei-Endung besitzt.

Wie bei allen Ände­run­gen an Datei­en, die für Web­sei­ten ver­än­der­ten wer­den, gilt, dass die­se nicht mit einem Text­ver­ar­bei­tungs­pro­gramm wie Word, son­dern nur mit rei­nen Text­edi­to­ren bear­bei­tet wer­den dür­fen.

Durch den vor­an­ge­stell­ten Punkt im Datei­na­men wird die Datei unter macOS nicht ange­zeigt, da so ver­steck­te Datei­en mar­kiert wer­den. Unter Win­dows sind die­se Datei­en für gewöhn­lich sicht­bar. Fol­gend also zuerst eine Beschrei­bung, wie ver­steck­te Datei­en unter macOS ange­zeigt wer­den kön­nen.

Auf dem Mac versteckte Dateien anzeigen

Es gibt zwei Mög­lich­kei­ten, sich die ver­steck­ten Datei­en auf einem Mac anzei­gen zu las­sen.

1. Tastenkombination

Am schnells­ten funk­tio­niert es über die Tas­ten­kom­bi­na­ti­on
[cmd] + [shift] + [.]
oder mit den Sym­bo­len der Mac-Tas­ta­tur
[⌘] + [⇧] + [.]
Ein noch­mai­li­ges Drü­cken der Tas­ten­kom­bi­na­ti­on deak­ti­viert die­se Opti­on wie­der.

2. Terminal

Etwas umständ­li­cher funk­tio­niert es über das Ter­mi­nal

  1. Das Ter­mi­nal öff­nen (ent­we­der über das Launch­pad oder über Spot­light, in dem ein­fach Ter­mi­nal in das Such­fens­ter ein­ge­ge­ben wird).
  2. Fol­gen­den Befehl ein­fü­gen und mit Enter bestä­ti­gen
    defaults wri­te com.apple.finder App­le­Show­All­Files ‑bool TRUE
    Übri­gens: auf dem Mac funk­tio­niert das Kopie­ren und Ein­fü­gen aus dem Brow­ser in das Ter­mi­nal­fens­ter.
  3. Anschlie­ßend wird der Fin­der mit fol­gen­dem Befehl (der eben­falls mit Enter bestä­tigt wird) neu­ge­star­tet
    kill­all Fin­der
  4. Fol­gen­den Befehl im Ter­mi­nal mit Enter bestä­ti­gen, um die Sicht­bar­keit rück­gän­gig zu machen
    defaults wri­te com.apple.finder App­le­Show­All­Files ‑bool FALSE
  5. Anschlie­ßend wie­der den Fin­der neu star­ten mit
    kill­all Fin­der

Mögliche Redirects (Weiterleitungen)

Interne Weiterleitungen

Solch einer inter­ne Redi­rect macht Sinn, wenn sich die Struk­tur einer Web­sei­te oder eines Blogs ändert. Wenn sich zum Bei­spiel eine URL ändert von fl‑e.de/alter-pfad/ nach fl‑e.de.de/neuer-pfad/

Rewri­teEn­gi­ne On
Redi­rect 301 /al­ter-pfa­d/ https://fl‑e.de/neuer-pfad/

Das funk­tio­niert aber nur, wenn die Struk­tur der Web­sei­te, die anschlie­ßend folgt, bestehen bleibt. Die Domain muss natür­lich ent­spre­chend ange­passt wer­den.

Ändert sich die Struk­tur eines Word­Press-Blogs von Tag und Name nach %Post­link%, so sieht der Code fol­gen­der­ma­ßen aus:

Redi­rect­Match 301 ^/([0–9]{4})/([0–9]{2})/([0–9]{2})/(?!page/)(.+)$ https://fl‑e.de/$4

von Monat und Name ent­spre­chend

Redi­rect­Match 301 ^/([0–9]{4})/([0–9]{2})/(?!page/)(.+)$ https://fl‑e.de/$3

Wer nähe­res zur Struk­tur­än­de­rung des Word­Press-Blogs erfah­ren möch­te, lese den ent­spre­chen­den Bei­trag.

Weiterleitung von www auf nicht-www

Die­se Wei­ter­lei­tung soll­te mitt­ler­wei­le der Web­hos­ter auto­ma­tisch über­neh­men. Wer den­noch mit sei­nem Web­hos­ter zufrie­den ist und eine ent­spre­chen­de Umlei­tung selbst ein­rich­ten möch­te, ver­wen­de fol­gen­den Code:

Rewri­teEn­gi­ne On
Rewri­te­Cond %{HTTP_HOST} ^www\.fl‑e\.de$ [NC]
Rewri­te­Rule ^(.*)$ https://fl‑e.de/$1 [L,R=301]

Das glei­che funk­tio­niert natür­lich auch anders her­um:

Weiterleitung von nicht-www auf www

Rewri­teEn­gi­ne On
Rewri­te­Cond %{HTTP_HOST} !^www\.fl‑e\.de$ [NC]
Rewri­te­Rule ^(.*)$ http://www.fl‑e.de/$1 [L,R=301]

Weiterleitung von http auf https

Es ist drin­gend ange­ra­ten, sei­ne Web­sei­te nur noch ver­schlüs­selt zu betrie­ben, damit die­se nur noch über https zu errei­chen ist. Wenn der Web­hos­ter das SSL-Zer­ti­fi­kat zur Ver­fü­gung stellt, wird auch die Wei­ter­lei­tung auto­ma­tisch ein­ge­rich­tet. Wer das SSL-Zer­ti­fi­kat manu­ell sei­ner Sei­te hin­zu­fü­gen muss, muss auch die Wei­ter­lei­tung manu­ell ein­fü­gen. Hier kur­sie­ren sehr vie­le unter­schied­li­che Codes im Netz, bei uns hat aber nur fol­gen­der funk­tio­niert:

Rewri­teEn­gi­ne On
Rewri­te­Cond %{HTTPS} !=on
Rewri­te­Rule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Im Gegen­satz zu ande­ren hier gezeig­ten Codes, muss die­ser so wie er ist über­nom­men wer­den.

Theo­re­tisch kann man auch eine Wei­ter­lei­tung von https auf http ein­rich­ten, aber das macht wenig Sinn.

Weiterleitung zu einer neuen Domain

Wer sei­ne Web­sei­te zu einer neu­en Domain umzieht und dabei die Stuk­tur der Web­sei­te nicht andert, ver­wen­det fol­gen­den Code

Rewri­teEn­gi­ne On
Rewri­te­Cond %{REQUEST_URI} (.*)
Rewri­te­Rule ^(.*)$ https://fl‑e.de/$1 [L,R=301]

ändert sich die Web­sei­ten-Struk­tur, hilft fol­gen­der Code:

Rewri­teEn­gi­ne On
Rewri­te­Cond %{REQUEST_URI} (.*)
Rewri­te­Rule ^(.*)$ https://www.fl‑e.de/ [L,R=301]


Schreibe einen Kommentar

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