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]
我们在我们的网站上使用漂亮的网址。几年前,我有一位外部技术人员加回 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]