Zur Navigation

Fragen zu Code in htaccess

1 Selo

Liebe Freude, vor vielen Jahren habe diesen Code in die .htaccess eingefügt und weiß leider nicht mehr, was das bedeutet.
Kann mir jemand auf die Sprünge helfen?

Redirect 301 /[/url] http://www.l-seifert.de/

RewriteEngine On

RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,QSA,L]
RewriteRule ^index\.(html?|php)$ http://%{HTTP_HOST}/ [R=301,QSA,L]

Eine Sache könnte sein, dass die index eine html-Endung hat und diese als php ausgeführt werden muss.

Nun habe ich die Domain auf https umstellen lassen und benötige eine dauerhafte Weiterleitung von http auf https.
Dann könnte ich die .html in .php umbenennen und damit auch den dafür zuständigen Code weglassen.
Danke für eine Antwort.

Viele Grüße und ein schönes Wochenende wünscht euch Lothar

21.01.2017 10:53

2 Jörg Kruse

Redirect 301 /[/url] http://www.l-seifert.de/

steht das da wirklich so drin oder ist das [/url] ein Übertragungsfehler?

RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,QSA,L]

Leitet von nicht-www. nach www. weiter

RewriteRule ^index\.(html?|php)$ http://%{HTTP_HOST}/ [R=301,QSA,L]

Eine Sache könnte sein, dass die index eine html-Endung hat und diese als php ausgeführt werden muss.

Nein, die Rule sorgt lediglich dafür, dass /index.php, /index.htm und /index.html nach / weitergeleitet werden

Nun habe ich die Domain auf https umstellen lassen und benötige eine dauerhafte Weiterleitung von http auf https.

Du könntest auf den HTTPS-Server-Port 443 testen und an die erste Bedingung mit einer Oder-Verknüpfung anschließen und dann auf die https-URL weiterleiten:

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

also alle URLs, deren Host nicht auf www. anfängt oder die nicht über Port 443 angefragt werden, werden weiter geleitet nach https://www.

21.01.2017 11:18 | geändert: 21.01.2017 11:18

3 Selo

Dankeschön Jörg,

Die ersten beiden Zeilen stehen so da. /url ist kein Übertragungsfehler. /kontakt ist ein Ordner, in dem Dateien liegen. Was das bedeutet, weiß ich nicht.

Redirect 301 /kontakt/& http://www.l-seifert.de/
Redirect 301 /[/url] http://www.l-seifert.de/

Was ich nun gar nicht verstehe, warum die index.html wie eine .php ausgeführt wird. Das müsste ja in der .htacces als Befehl stehen, oder? Der PHP-Code in der html-Datei wird jedenfalls ausgeführt.
Wenn ich in die Browserzeile www.domain/index.html eintippe, verschwinded beim Aufruf /index.html. Das auch mit index.php

Und was hat dann diese Zeile bewirkt, wo kann das hingeleitet haben?
RewriteRule ^index\.(html?|php)$ http://%{HTTP_HOST}/ [R=301,QSA,L]

Vielen Dank und ich wünsche schon mal eine schöne neue Woche.

22.01.2017 18:05

4 Jörg Kruse

Zitat von Selo

Die ersten beiden Zeilen stehen so da. /url ist kein Übertragungsfehler. /kontakt ist ein Ordner, in dem Dateien liegen. Was das bedeutet, weiß ich nicht.

Redirect 301 /kontakt/& http://www.l-seifert.de/
Redirect 301 /[/url] http://www.l-seifert.de/

Du leitest http://example.com/kontakt/& weiter auf http://www.l-seifert.de/kontakt/& - wobei example.com die Domain ist, auf der sich die .htaccess Datei befindet. Analog verhält es sich mit der zweiten Weiterleitung. Sinn scheint das m.E. nicht zu machen - http://www.l-seifert.de/[/url] z.B. wird in einem zweiten Schritt eh auf die Startseite weitergeleitet - dann könnte man das auch gleich direkt machen; falls es überhaupt irgendwo noch Links gibt die auf http://example.com/[/url] verweisen - mir schaut das ehrlich gesagt eher aus wie ein Copy & Paste Fehler, wo beim Kopieren noch ein BBCode Tag mit reingerutscht ist

Was ich nun gar nicht verstehe, warum die index.html wie eine .php ausgeführt wird. Das müsste ja in der .htacces als Befehl stehen, oder? Der PHP-Code in der html-Datei wird jedenfalls ausgeführt.

Das geschieht normalerweise mit einer AddHandler oder AddType-Direktive. Diese kann in einer .htaccess Datei oder auch in einer Konfigurationsdatei des Webservers stehen.

Wenn ich in die Browserzeile www.domain/index.html eintippe, verschwinded beim Aufruf /index.html. Das auch mit index.php

Und was hat dann diese Zeile bewirkt, wo kann das hingeleitet haben?
RewriteRule ^index\.(html?|php)$ http://%{HTTP_HOST}/ [R=301,QSA,L]

Ja, das ist ja genau das, was ich oben geschrieben habe:

Zitat von Jörg
RewriteRule ^index\.(html?|php)$ http://%{HTTP_HOST}/ [R=301,QSA,L]

Eine Sache könnte sein, dass die index eine html-Endung hat und diese als php ausgeführt werden muss.

Nein, die Rule sorgt lediglich dafür, dass /index.php, /index.htm und /index.html nach / weitergeleitet werden

23.01.2017 09:49 | geändert: 23.01.2017 10:03

5 Selo

Hallo Jörg, vielen Dank. Das ist sehr nett von dir, mir so auf die Sprünge zu helfen.

Dann schreibe ich nun nur noch dieses, um alles von nicht www. auf www. und von http zu https zu leiten?

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

Nun kann ich mir nach deiner Erklärung vorstellen, wo das herkommt:
Redirect 301 /kontakt/& http://www.l-seifert.de/
Redirect 301 /[/url] http://www.l-seifert.de/
Google hatte vor langer Zeit einfach Webseiten erfunden, die im Ordner /kontakt stehen sollten und als Fehler in den Webmastertools angezeigt.

Aus der index.html mache ich einfach eine index.php. Dann sollte alles in Ordnung sein, wie ich hoffe.

Nochmals vielen Dank und viele Grüße.

23.01.2017 11:38

6 Jörg Kruse

Zitat von Selo
Dann schreibe ich nun nur noch dieses, um alles von nicht www. auf www. und von http zu https zu leiten?

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

Ja

Nun kann ich mir nach deiner Erklärung vorstellen, wo das herkommt:
Redirect 301 /kontakt/& http://www.l-seifert.de/
Redirect 301 /[/url] http://www.l-seifert.de/
Google hatte vor langer Zeit einfach Webseiten erfunden, die im Ordner /kontakt stehen sollten und als Fehler in den Webmastertools angezeigt.

Also kaputte URLs, die auf /[/url] bzw. /kontakt/& enden? Bei einer Weiterleitung mit der Redirect Direktive bleibt der (kaputte) Pfad aber erhalten. Von daher würde ich diese beiden Zeilen löschen.

23.01.2017 16:44

1 Forenmitglied fand diesen Beitrag gut

7 Selo

Vielen Dank Jörg und viele Grüße aus der Oberlausitz

24.01.2017 09:15

8 Selo

Hallo Jörg, das funktioniert leider nicht.

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

Nach dem Einfügen sind alle Seiten, die nicht mit https aufgerufen werden, kaputt und werden nicht richtig geladen.

Diesen Code habe ich in einer Subdomain verwendet, dass funktioniert da, aber nicht auf der Hauptdomain.
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

Von nicht www zu www. ist schon auf dem Server voreingestellt. Das brauche ich scheinbar nicht mehr.

Ob da wegen https eine Einstellung vom Server her besteht und ich mal bei der Serverfirma nachfrage oder hast du eine Idee?

Viele Grüße von Lothar

24.01.2017 22:37

9 Jörg Kruse

Nach dem Einfügen sind alle Seiten, die nicht mit https aufgerufen werden, kaputt und werden nicht richtig geladen.

Über https aufgerufen, funktioniert aber?

Steht sonst noch was in der .htaccess Datei? am besten postest du mal den kompletten Inhalt.

RewriteCond %{HTTPS} off

Kann man alternativ verwenden. Je nach Serverkonfiguration funktioniert die Überprüfung der Umgebungsvariable HTTPS oder die Überprüfung des Ports oder beides.

Diesen Code habe ich in einer Subdomain verwendet, dass funktioniert da, aber nicht auf der Hauptdomain.

Was genau heißt "funktioniert nicht" - werden die Seiten dann auch kaputt geladen?

Von nicht www zu www. ist schon auf dem Server voreingestellt.

Wie ist das dort eingestellt - über das Control Center des Webhosters? Je nachdem, wie das umgesetzt ist, könnte das durchaus zu Interferenzen mit eigenen mod_rewrite Regeln führen. Um was für einen Webhoster handelt es sich denn?

Ob da wegen https eine Einstellung vom Server her besteht und ich mal bei der Serverfirma nachfrage

Ja, falls es dort analog zur www. Weiterleitung so eine Einstellung gibt, würde ich die nutzen. Eine https Weiterleitung in der .htaccess Datei ist eigentlich auch nur ein Notbehelf, wenn man selbst keinen Zugriff auf die Serverkonfiguration hat.

25.01.2017 09:50 | geändert: 25.01.2017 10:01

1 Forenmitglied fand diesen Beitrag gut

10 Selo

Hallo Jörg,

ich habe bei der Serverfirma nachgefragt, nun wurde es serverseitig eingestellt. Es funktioniert. So ist wohl hoffentlich nun die letzte Hürde auch Dank deiner Hilfe genommen. In die .htaccess braucht nun keine Weiterleitung mehr hinein.
Hier liegt meine Webseite: https://www.webspace4all.eu/

Dankeschön für deine Mühe und viele Grüße von Lothar

25.01.2017 16:36

Beitrag schreiben (als Gast)

Die Antwort wird nach der Überprüfung durch einen Moderator freigeschaltet.





[BBCode-Hilfe]