Anzeige

 HTTP WWW -> HTTPS


phwert

Erfahrenes Mitglied
#1
Hallo,

ein SEO-Tool bemängelt, dass die Webseite über unterschiedliche Wege erreichbar ist.
Leiten Sie Anfragen mit und ohne www. auf die gleiche Seite per HTTP 301 Redirect weiter.
Ich habe daraufhin beim Hoster "HTTPS erzwingen" gestellt, aber das reicht wohl noch nicht.
Wenn ich in der .htaccess noch zusätzlich ein Redirect einbaue, erscheint die Seite gar nicht mehr:
Code:
Forbidden
You don't have permission to access / on this server.
Jemand eine Idee?

Gruß

PS: Die zwei Redirect-Varianten, die ich versucht habe:
Code:
#<IfModule mod_rewrite.c>
#RewriteEngine On
#RewriteCond %{HTTPS} off
#RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
#RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
#RewriteRule ^ https://%1%{REQUEST_URI} [R=301,L]
#</IfModule>
------------------------------------
#<IfModule mod_rewrite.c>
#RewriteEngine On
#RewriteCond %{HTTPS} off
#RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
#</IfModule>
 
Zuletzt bearbeitet:
#2
Hi

ich nehme an, vor den ganzen Änderungen waren http und https beide fehlerfrei aufrufbar?

Dann, erstens, mach diese Erzwingen-Option wieder weg. Ganz egal, was der Hoster damit genau meint, für einen Redirect Http->Https ist es nicht nötig. Und evt. ist auch nur das der Grund für das Forbidden; die Rewritezeilen machen sowas nämlich nicht.

Zu den Rewrites, wenns nur um Http/s geht sollte Variante zwei reichen.

301-Redirects mit einem Browser testen ist aber problematisch, weil die gecached werden - einmal falsch, und es bleibt vorerst so.
Daher eher Tools wie zB. wget verwenden, und wenn es fehlerfrei funktioniert dann noch die Brwosercaches leeren und schließen+wiederöffnen vom Programm.

...
Zum ursprünglichen Problem der Mehrfach-Erreichbarkeit: Bist du dir überhaupt sicher, dass es an Http/s liegt und nicht (auch) an was anderem? Die Erklärung wegen Http/s könnte einfach ein Standardtext sein, weil das oft (aber nicht immer) der Grund ist.
 

phwert

Erfahrenes Mitglied
#3
Hej,

ich kann nur sagen, was das SEO-Tool sagt.

Ich hatte das Redirect in der .htaccess schon vorher auf zig verschiedene Varianten versucht, ohne es bei Strato zu erzwingen, war aber kein Unterschied. Die Seite war dann egal wie - HTTP, HTTPS, www, ohne www - nicht mehr erreichbar.

Wie gesagt, das mit der Mehrfacherreichbarkeit kommt von dem SEO-Tool (https://freetools.seobility.net/de/seocheck/). Deshalb kam ich überhaupt da drauf.

Ohne Redirect in der .htaccess komme ich immer auf HTTPS://meineDomain.de oder HTTPS://www.meineDomain.de. So ist der Stand auch momentan.

Mit Redirect und egal welcher Variante kommt immer das eingangs erwähnt "ForbiddenYou don't have permission to access / on this server."

Momentan habe ich die SSL-Erzwingung bei Strato und nichts im .htaccess. Klappt wunderbar - nur das SEO-Tool moppert. Vielleicht schreibe ich die mal an. Vielleicht ist ja mit deren Tool was nicht in Ordnung.
 
#4
1. 301er-Redirects werden - weil sie von Natur aus permanent sind - hart gecached, können aber in den meisten gängigen Browsern bspw. über die Tastenkombination Strg+Umschalt+Entf und anschließender Auswahl des Caches wieder entfernt werden. Ein Neustart des Browsers ist dabei nicht notwendig.

2. Probiere mal folgendes:
Code:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTPS} off
RewriteRule "^(www\.)?domain.tld/" "https://www.domain.tld/" [R=301,L]
</IfModule>
Das www in der Zieladresse ist dabei natürlich optional - je nach persönlichen Geschmack.

Ich denke mal, dass bei Strato aufgrund der Serverkonfiguration die Variable {HTTP_HOST} nicht mit deiner - erwarteten - Domain, sondern mit irgendeiner Strato-internen Domain befüllt wird. Wenn du diese als Ziel des Rewrites setzt, versuchst du demnach ein Verzeichnis aufzurufen, auf das du natürlich keine Leserechte besitzt. Eventuell schafft auch nur das zusätzliche Einbinden von "RewriteBase /" in deine Test-Konfigurationen oben Abhilfe.
 
Zuletzt bearbeitet:
Anzeige
Anzeige