我有一個從舊主機重定向的網站。我無法更改舊主機的重定向。
問題在於,重定向在不合適的情況下會附加尾部斜線。例: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 中,那麼它將捕獲所有請求。)