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

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

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

問題在於,重定向在不合適的情況下會附加尾部斜線。例:http://example.com/picture.jpg/http://example.com/page.html/.

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

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

有沒有辦法刪除 URL 末端的斜槓?這是一個不複雜的網站(直接簡單的 html,沒有腳本語言等)。

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

答案1

.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 中,那麼它將捕獲所有請求。)

相關內容