【问题标题】:Apache rewrite that strips anything after a pipe (|) characterApache 重写,删除管道 (|) 字符后的任何内容
【发布时间】:2018-06-21 22:15:24
【问题描述】:

TL;DR:

https://example.com/page%7chttps://example.com 的请求

想301到https://example.com/page

RewriteRule ^(.*?)\%7C $1 [NC,R=301,L] 的规则不起作用,我不知道为什么。

加长版:

我看到来自目录站点的大量 404 错误,其中包含一些混乱的代码,我一直在尝试修复它们,但没有取得任何进展。我现在正试图在他们找到我后简单地重定向他们。

他们的坏链接的结构是https://example.com/page%7chttps://example.com

我想做的只是从 %7C​​ 开始。将其放入第 1 组的正则表达式是 ^(.*?)\%7C

所以我想我只需要做类似的事情 RewriteRule ^(.*?)\%7C $1 [NC,R=301,L] 但这仍然只是返回原始请求 |字符而不是十六进制值 7C。

我不知道我做错了什么。

【问题讨论】:

  • 你有没有想过这个问题?我从谷歌的爬虫收到大量这样的请求(%7C)。你最终找到RewriteRule了吗?

标签: apache redirect url-rewriting


【解决方案1】:

试试RewriteRule ^(.*)\| $1 [R=301,L]

【讨论】:

  • 虽然此代码可能会回答问题,但提供有关它如何和/或为什么解决问题的额外上下文将提高​​答案的长期价值。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-27
相关资源
最近更新 更多