htaccess 重定向 url 尾随 %20

htaccess redirect url with trailing %20

我们在我们的网站上使用漂亮的网址。几年前,我有一位外部技术人员加回 links。他做得很好,但在一个案例中,他总是添加一个 link 和一个尾随 space 字符。

https://www.example.com/item/item/%20

这已被索引为 %20 我可以在我的背上看到 link 报告有 87 个站点指向 URL 并且 %20 在结束。

如果我可以重定向它,那么我的页面 /item/item/ 将获得 87 回 link。

我们使用重写规则,我已经尝试了这里关于堆栈溢出的所有解决方案,但 none 有效。一些无效的解决方案是:

RewriteEngine on
RewriteRule ^(.*[^\ ])\ +$ /

RedirectRule (.*)\s$  [R=301]

RewriteRule ^(.*/|)[\s%20]+(.+)$  

我试过重定向 301,但这些都不起作用。

redirect 301 /item/item/%20 /item/item/

redirect 301 /item/item/+ /item/item/

一些有用的东西 - 这不是站点范围的模式。它只是一个特定的 URL 被错误地传播到世界上。它不是字符串中任何地方的 space - 它总是在末尾。

谢谢。

我也可以将尾随 %20 转换为已知字符,例如 - 因为我可以将它 /item/item/- 重定向到 item/item/

您可以将此规则用作 最顶层规则,就在 RewriteEngine On 行下方:

RewriteEngine On

RewriteRule ^(.*)(?:\s|\x20)+$ / [L,NE,R=301]