使用 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等)结尾的任何 URL 中删除尾随斜杠。.html.png

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 中,那么它将捕获所有请求。)

相关内容