Zur Navigation

Frage zur Weiterleitung

1 Sabine (Gast)

Hallo Jörg,

Welche der folgenden Codes ist korrekt oder empfehlenswerter?


RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Oder so


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

21.04.2020 14:07

2 Jörg

Der <IfModule> Container sorgt dafür, dass der darin enthaltene Code nur dann ausgeführt wird, wenn das Modul mod_rewrite auch wirklich geladen und aktiviert ist. Ohne diesen Container würde andernfalls ein Server-Error 500 ausgegeben, weil die Direktiven dem Webserver dann unbekannt sind. Der Container kann sinnvoll sein, wenn der Code nur optional ist und auf verschiedenen Umgebungen zum Einsatz kommt, wo nicht auszuschließen ist, dass das Modul auch mal nicht zur Verfügung steht (Beispiel: WordPress, welches auch ohne seinen mod_rewrite Code funktioniert)

21.04.2020 16:12 | geändert: 21.04.2020 16:18

3 Sabine (Gast)

Danke Jörg für deine Antwort und die ausführliche Erklärung.
Es ist also sinnvoll und empfehlenswert die zweite Variante zu verwenden oder was ist deine bevorzugte Lösung?

22.04.2020 15:00

4 Jörg

Wenn ich eh weiß, dass auf dem betreffenden Host mod_rewrite aktiviert ist, verzichte ich auch schon mal oft auf so einen <IfModule> Container. Ansonsten schadet es sicher nicht, diesen einzubauen.

22.04.2020 15:40 | geändert: 22.04.2020 15:44

5 Sabine (Gast)

Danke für deine Meinung!
Dir noch einen schönen Tag!

22.04.2020 17:09

Beitrag schreiben (als Gast)

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





[BBCode-Hilfe]