Apache-2.2

使用 Apache 從重定向的 URL (.jpg/ .htm/ .gif/) 中刪除尾部斜杠

  • January 30, 2020

我有一個從舊主機重定向的網站。我無法更改舊主機的重定向。

問題是重定向在不合適時附加了斜杠。範例:http://example.com/picture.jpg/http://example.com/page.html/

這導致我的伺服器返回 404。

理想情況下,我會修復舊站點的重定向,但不能。

有沒有辦法刪除 URL 末尾的斜杠?這是一個不復雜的網站(簡單的 html,沒有腳本語言等)。

我看了看,找不到現有的解決方案。

您可以執行以下操作以從任何以文件副檔名(.jpg, .html,.png等)結尾的 URL 中刪除尾部斜杠

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

只有在您測試它可以正常工作(避免記憶體問題)後,才將 302(臨時)更改為 301(永久)。

更新: http 重定向到 https,並且 https 重寫了有趣的斜杠。

如果這些連結都只綁定到 HTTP(不是 HTTPS),那麼只在 HTTP vHost 中執行此重定向並直接重定向到 HTTPS 也是有意義的。例如:

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

(雖然被授予,但如果它位於 HTTPS 的 vHost 中,那麼它將擷取所有請求。)

引用自:https://serverfault.com/questions/1000914