Warum registrieren? Nur als registriertes Mitglied vom ABAKUS Forum hast Du vollen Zugriff auf alle Funktionen unserer Website.

Weiterleitungskette notwendig?

Mehrere Domains, Domain-Umzug, neue Dateinamen, 301/302
drax
PostRank 4
PostRank 4
Beiträge: 102
Registriert: 07.08.2013, 04:19

Beitrag von drax » 22.10.2019, 06:47

Hallo,

mir ist aufgefallen, dass bei meinen Webseiten teilweise lange Weiterleitungsketten entstehen.

Ich schlimmsten Fall:

http://www.webseite.de
301 auf https://www.webseite.de
301 auf http://webseite.de
301 auf https://webseite.de
dann endlich 200

Ansonsten:

http://www.webseite.de
301 auf https://www.webseite.de
301 auf https://webseite.de
dann Status 200

Ist da evtl. was falsch in der htaccess?

Lässt sich die Umleitung nicht direkt in nur einem einzigen Schritt einrichten, oder sind solche Weiterleitungsketten normal?

Bzw. ist sowas überhaupt ein Problem?

Zum überprüfen der Statuscodes habe ich httpstatus.io benutzt.

Anzeige von:

SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


supervisior
PostRank 9
PostRank 9
Beiträge: 1612
Registriert: 26.06.2006, 09:11

Beitrag von supervisior » 22.10.2019, 09:28

Also Deine Weiterleitungen sind sicherlich nicht ganz okay, wobei diese gänzlich zu eliminieren geht nicht, weil es immer darauf ankommt, wie man Deine Seite aufruft, sodass das nachfolgenden Szenario eigentlich normal ist. Stimmen tut aber trotzdem was nicht bei Dir.

Gehen wir mal davon aus, dass die endgültige URL Deiner Seite so lautet:

https://www.webseite.de

Vorausgesetzt es gibt einen entsprechede Redirect Rule in Deiner .htaccess, dann würde bei Eingabe von:

webseite.de (was dem Aufruf http://webseite.de entspricht)
zunächst entweder ein 301 auf https://www.webseite.de erfolgen
und dann ein weiterer 301 auf https://www.webseite.de

Was nach dem obigen Beispiel an welcher Stelle steht, hängt von der Reihenfolge ab, wie es in der .htacces definiert ist. Die 2-fache Umleitung könnte man noch auf 1 reduzieren, bedarf aber weiterer mod_rewrite Regeln.

In Deinem Fall stimmt da aber was nicht und da sind mind. 2 Weiterleitung zu viel drin, weil von https://www.webseite.de auf auf http://webseite.de und dann auf https://webseite.de geleitet wird. Um Dir da konkret helfen zu können, müsste man Deine .htaccess sehen

Mal als Beispiel wie Deine Weiterleitungen halbwegs korrekt aussehen sollte:

Code: Alles auswählen

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /
  RewriteCond %{SERVER_PORT} !^443$
  RewriteRule (.*) https://%{HTTP_HOST}/$1 [R=301,L]  
  RewriteCond %{HTTP_HOST} !^www\.
  RewriteRule ^(.*)$ https://www.webseite.de/$1 [R=301,L]
</IfModule>
Die obigen Regeln könnte man aber noch weiter optimieren. Was Du aber zusätzlich machen solltest, wäre Deine URL bei https://hstspreload.org/ anmelden, sodass die Browser wissen, dass man Deine Seite immer nur mit https aufrufen soll.

drax
PostRank 4
PostRank 4
Beiträge: 102
Registriert: 07.08.2013, 04:19

Beitrag von drax » 22.10.2019, 13:11

Alles klar, vielen Dank für die Infos.

Also bei den 2fach Umleitungen sieht es so aus:

Code: Alles auswählen

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

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Bei der 3fach Umleitungen steht es umgedreht drinn. Das scheint der Fehler zu sein:

Code: Alles auswählen

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

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^webseite\.de$ [NC]
RewriteRule ^(.*)$ http://webseite\.de/$1 [R=301,L]
Werde da nochmal nacharbeiten.

supervisior
PostRank 9
PostRank 9
Beiträge: 1612
Registriert: 26.06.2006, 09:11

Beitrag von supervisior » 22.10.2019, 14:48

Schmeiß beides aus Deiner .htaccess raus und ersetze es mit meinem Schnipsel, dann bist Du auf sicheren Seite.

Hanzo2012
Community-Manager
Community-Manager
Beiträge: 1834
Registriert: 26.09.2011, 23:31

Beitrag von Hanzo2012 » 22.10.2019, 16:26

supervisior hat geschrieben:
22.10.2019, 09:28
Die 2-fache Umleitung könnte man noch auf 1 reduzieren, bedarf aber weiterer mod_rewrite Regeln.
Beides auf einmal zu tun geht sogar kürzer:

Code: Alles auswählen

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /
  RewriteCond %{SERVER_PORT}:%{HTTP_HOST} !^443:www\.
  RewriteRule (.*) https://www.webseite.de/$1 [R=301,L]  
</IfModule>
Oder mit %{HTTPS} (kann "on" oder "off" sein) statt %{SERVER_PORT}, was ich besser finde:

Code: Alles auswählen

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /
  RewriteCond %{HTTPS}:%{HTTP_HOST} !^on:www\.
  RewriteRule (.*) https://www.webseite.de/$1 [R=301,L]  
</IfModule>

drax
PostRank 4
PostRank 4
Beiträge: 102
Registriert: 07.08.2013, 04:19

Beitrag von drax » 04.01.2020, 19:30

Es ist zwar schon ein bisschen her, aber nun hatte ich endlich mal Zeit es richtig hinzubekommen.

Nutze nun folgenden Eintrag in der htaccess

Code: Alles auswählen

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.webseite\.de$ [NC]
RewriteRule ^(.*)$ https://webseite.de/$1 [L,R=301]

RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteRule (.*) https://%{HTTP_HOST}/$1 [R=301,L]
Damit werden sämtliche Anfragen
http://www.webseite.de
http://webseite.de
https://www.webseite.de
innerhalb eines einzigen Umleitungsschritts auf die korrekte Variante umgeleitet
https://webseite.de


Was mich gleich zur nächsten Frage bringt:

Wenn ich die Domain nun auf eine andere Domain umleiten möchte, wie und wo trage ich am besten die entsprechenden Weiterleitungen der einzelnen URLs in die htaccess ein? Vor der www und https Umleitung oder danach?
Ich würde folgende Einträge nehmen:

Code: Alles auswählen

RewriteEngine On
Redirect 301 /alter-pfad/ https://www.neuewebseite.de/neuer-pfad/
Und da man wohl von detaillierten zu globalen Regeln von oben nach unten gehen soll, würde ich die Einträge ganz nach oben in die htaccess schreiben, oder? Die www und https Umleitungen sind dann ja eigentlich eh obsolet...

staticweb
PostRank 9
PostRank 9
Beiträge: 1791
Registriert: 04.05.2016, 14:34

Beitrag von staticweb » 04.01.2020, 21:12

Musst nur Zeile 2 und 3 anpassen, wenn du die Domain wechselst.

Benutzeravatar
arnego2
PostRank 9
PostRank 9
Beiträge: 1830
Registriert: 23.02.2016, 13:55
Kontaktdaten:

Beitrag von arnego2 » 04.01.2020, 21:35

drax hat geschrieben:
04.01.2020, 19:30
Vor der www und https Umleitung oder danach?
Ich würde folgende Einträge nehmen:

Code: Alles auswählen

RewriteEngine On
Redirect 301 /alter-pfad/ https://www.neuewebseite.de/neuer-pfad/
Und da man wohl von detaillierten zu globalen Regeln von oben nach unten gehen soll, würde ich die Einträge ganz nach oben in die htaccess schreiben, oder? Die www und https Umleitungen sind dann ja eigentlich eh obsolet...
Wenn du dir nicht ganz sicher bist dann lieber die 302
Arnego2 <Webseiten Umbau ab 80 Euro>

supervisior
PostRank 9
PostRank 9
Beiträge: 1612
Registriert: 26.06.2006, 09:11

Beitrag von supervisior » 05.01.2020, 10:36

drax hat geschrieben:
04.01.2020, 19:30
Es ist zwar schon ein bisschen her, aber nun hatte ich endlich mal Zeit es richtig hinzubekommen.

Nutze nun folgenden Eintrag in der htaccess

Code: Alles auswählen

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.webseite\.de$ [NC]
RewriteRule ^(.*)$ https://webseite.de/$1 [L,R=301]

RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteRule (.*) https://%{HTTP_HOST}/$1 [R=301,L]

Funktionell zwar richtig, aber ich verstehe nicht, warum Du die Lösung von @Hanzo2012 nicht verwendest. Das macht das Gleiche nur viel effektiver und schneller. Vor allem bleibt Dir der zusätzliche HSTS Header beim non-SSL Aufruf erspart. Was an Deiner Interpretation falsch ist, merkst Du spätestens, wenn Du Deine Seite bei https://hstspreload.org/ anmeldest damit jeder Browser schon vor dem Aufruf weiß, dass Deine Seite nur per https:// erreichbar ist. Du schenkst also Zeit beim Aufruf Deiner Seite her.

drax
PostRank 4
PostRank 4
Beiträge: 102
Registriert: 07.08.2013, 04:19

Beitrag von drax » 08.01.2020, 19:41

supervisior hat geschrieben:
05.01.2020, 10:36
Funktionell zwar richtig, aber ich verstehe nicht, warum Du die Lösung von @Hanzo2012 nicht verwendest. Das macht das Gleiche nur viel effektiver und schneller. Vor allem bleibt Dir der zusätzliche HSTS Header beim non-SSL Aufruf erspart. Was an Deiner Interpretation falsch ist, merkst Du spätestens, wenn Du Deine Seite bei https://hstspreload.org/ anmeldest damit jeder Browser schon vor dem Aufruf weiß, dass Deine Seite nur per https:// erreichbar ist. Du schenkst also Zeit beim Aufruf Deiner Seite her.
Irgendwie klappt das mit der Lösung von @Hanzo2012 nicht. Da bekomme ich "Max redirects exceeded".
Werde mich mal bezüglich HSTS einlesen.

staticweb
PostRank 9
PostRank 9
Beiträge: 1791
Registriert: 04.05.2016, 14:34

Beitrag von staticweb » 08.01.2020, 20:03

> Irgendwie klappt das mit der Lösung von @Hanzo2012 nicht. Da bekomme ich "Max redirects exceeded".

Eine Endlosschleife? Dann hast du etwas falsch gemacht. Ich sehe dafür keine Indizien.

Allerdings kann es bei der kombinierten Lösung zu anderen Nebeneffekten kommen.

> Werde mich mal bezüglich HSTS einlesen.

Vorsicht! wenn das einmal eingerichtet ist gibt es keinen (zeitnahen) Weg zurück!

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag