Entfernen des abschließenden Schrägstrichs aus umgeleiteten URLs (.jpg/ .htm/ .gif/) mit Apache

Entfernen des abschließenden Schrägstrichs aus umgeleiteten URLs (.jpg/ .htm/ .gif/) mit Apache

Ich habe eine Website, die von einem alten Host umgeleitet wird. Ich kann die Umleitung des alten Hosts nicht ändern.

Das Problem besteht darin, dass die Weiterleitung einen Schrägstrich am Ende anfügt, obwohl dies nicht angebracht ist. Beispiel: http://example.com/picture.jpg/oder http://example.com/page.html/.

Dies führt dazu, dass mein Server eine 404-Fehlermeldung zurückgibt.

Idealerweise würde ich die Weiterleitung von der alten Site beheben, aber das geht nicht.

Gibt es eine Möglichkeit, den abschließenden Schrägstrich am Ende der URL zu entfernen? Dies ist eine Site, die nicht komplex ist (einfaches HTML, keine Skriptsprachen usw.).

Ich habe gesucht und konnte keine bestehende Lösung finden.

Antwort1

Sie können beispielsweise wie folgt vorgehen, um den abschließenden Schrägstrich aus allen URLs zu entfernen, die mit einer Dateierweiterung ( .jpg, .html, .pngusw.) enden.

RewriteEngine On
RewriteRule ^/?(.+?\.[a-z]{2,4})/$ /$1 [R=302,L]

Ändern Sie 302 (temporär) erst in 301 (permanent), wenn Sie getestet haben, dass es ordnungsgemäß funktioniert (um Caching-Probleme zu vermeiden).

AKTUALISIEREN:http wurde auf https umgeleitet und https hat den lustigen abschließenden Schrägstrich umgeschrieben.

Wenn diese Links alle nur über HTTP (nicht HTTPS) eingehen, wäre es sinnvoll, diese Umleitung nur im HTTP-vHost durchzuführen und auch direkt auf HTTPS umzuleiten. Beispiel:

RewriteRule ^/(.+?\.[a-z]{2,4})/$ https://example.com/$1 [R=302,L]

(Allerdings gilt: Wenn es sich im vHost für HTTPS befindet, werden alle Anfragen abgefangen.)

verwandte Informationen