Mehrere Slashes in einer URL per .htaccess entfernen?
Ich möchte mehrere Slashes beim Aufruf meiner Webseite aus der URL entfernen. Dies soll per mod_rewrite über eine .htaccess Datei erfolgen. Wie kann ich beim Aufruf meiner Webseite alle doppelten oder mehrfach vorkommenden Slashes automatisch aus der URL entfernen?
Beispiel:
Wenn jemand meine Seite mit der falschen URL aufruft ...
https://www.meine-domain.de///verzeichnis//unterverzeichnis/////
.. dann soll per mod_rewrite die richtige URL ausgegeben werden
https://www.meine-domain.de/verzeichnis/unterverzeichnis/
Was muss ich in der .htaccess Datei notieren, damit die URL korrekt umgeschrieben wird?
Folgendes habe ich schon versucht. Hier mal ein Auszug aus meiner .htaccess
#mehrere Trailing Slashes am Ende cutten
RewriteCond %{REQUEST_URI} ^(.*)//(.*)$
RewriteRule . %1/%2 [R=301,L]
#mehrere Trailing Slashes nach der Domain und in der Domain cutten
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ //+([^\ ]*)
RewriteRule .* https://www.meine-domain.de/%1 [R=301,L]
Leider funktioniert dies nach der Umstellung meiner Domain auf https nicht mehr. Woran kann das liegen? Wer kann mir sagen wie es funktioniert?
Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von phpbuddy
Hi, versuch mal folgende Condition per Mod Rewrite in der htaccess ..
RewriteCond %{THE_REQUEST} //
RewriteRule ^.*$ $0 [R=301,L,NE]
Sollte alle mehrfach vorkommenden Slashs beim Aufruf einer URL entfernen.
Kommentar von glitsch
Danke funktioniert.
Wie kann ich aber eine bestimmte URL von der Rule ausnehmen?
Über ein externes Script wird folgende URL aufgerufen, diese möchte ich von der Regel ausnehmen.
Bsp: Beim Aufruf folgender URL wird der GET-Paramter nicht mehr korrekt weitergeben und das Script funktioniert nicht mehr.
/jqsucheint.php?url=http://www.domain.de/script.php
Ich habe gerde mal in meine htaccess geschaut, bei mir funktioniert es so, auch mit https
RewriteCond %{REQUEST_URI} ^(.*)/{2,}(.*)$
RewriteRule . %1/%2 [R=301,L]
Kommentar von glitsch
Danke aber funktioniert leider nicht.
Die Regel greift nicht. Woran könnte es liegen?
Meinst du nicht dass es mit der Umstellung auf https zu tun hat?
Kommentar von CCmqt
Nein, bei mir funktioniert diese Rule und meine Seiten werden auch per HTTPS vom Apache ausgeliefert.
Ähnliche Fragen
Hi, kann mir jemand verraten wie ich mit PHP das letzte Zeichen am Ende einer Zeichenkette entfernen kann?
Ich hole mir aus einer MySQL-Datenbank ...
Wer weiss wann Wespen sterben? Kommt ja häufiger vor dass Wespen Nester am Haus bauen wo Menschen leben. Wir hatten diesen Sommer auch ein Wespennest im ...
Meine Hemden und T-Shirts haben unter den Achseln immer so graue Schweißflecken. Bei weißen Shirts und Hemden sehen die alten Flecken besonders hässlich ...
Hallo ihr lieben Instagram Profis und Kenner,
momentan bin ich hin und hergerissen, ob ich mehrere Accounts auf Instagram benutzen soll oder doch lieber ...
Hey SEOs & Coders,
Ich habe ein Problem mit meiner Webseite und zwar sind einzelne Seiten sowohl unter *.php wie auch unter *.html abrufbar. Wer sich ...
Nächste Frage
Die auf malnefrage.de veröffentlichten Fragen und Antworten sind Meinungsäußerungen der jeweiligen User. Da die Aussagen nicht geprüft werden, kann die Richtigkeit der Inhalte nicht gewährleistet werden.