Apache-2.2
使用 Apache 從重定向的 URL (.jpg/ .htm/ .gif/) 中刪除尾部斜杠
我有一個從舊主機重定向的網站。我無法更改舊主機的重定向。
問題是重定向在不合適時附加了斜杠。範例:
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 中,那麼它將擷取所有請求。)