使用 HTACCESS 从 URL 中删除引号字符串

Remove qutation mark sring from URL with HTACCESS

我们看到一个奇怪的事情,机器人发送奇怪的 URLs。他们在我们拥有的 url 中添加了一个 alexa URL。我们希望删除 URL 的那部分,因此它只包含奇数 URL 加法

之前的所有内容

所以我们想从

www.example.com/search/Linux/page/6/”http:/www.alexa.com/siteinfo/www.example.com“/page/900

www.example.com/search/Linux/page/6/

删除:”http:/www.alexa.com/siteinfo/www.example.com“/page/900

由于它有引号,我们不确定什么 htaccess 规则可以重写 URL,但愿意接受建议。

Not sure where the requests are coming from, only see them with our 404 monitor.

如果这些请求触发了 404(它们应该是),那么您实际上已经“阻止”了此类请求 - 它们不会无意中被搜索引擎编入索引。

但是,如果第三方错误地使用这些错误链接链接到您,那么您可能 正在失去流量。您可以重定向以删除 URL.

的错误部分

Due to it having the quotes, we I am unsure what htaccess rule would work to rewrite the URL, but am open to suggestions.

URL 中的引号匹配没有什么特别之处。但是,您问题中使用的引号不是“标准”double-quotes。开头引号是“U+201D:右双引号”,结尾是“U+201C:左双引号”。这不是问题,我们可以检查所有三个。

例如,使用 .htaccess 文件顶部的 mod_rewrite 从第一个引号字符开始删除 URL 的部分:

RewriteEngine On

# Remove everything from the first double quote onwards
RewriteRule ^([^"”“]+)["”“] / [R=301,L]

</code> 反向引用包含第一个双引号字符 URL-path <em> 之前 </em> 的部分。</p> <p>保留原始查询字符串(如果有)。</p> <p>首先使用 302(临时)重定向进行测试以避免潜在的缓存问题。</p> <p>或者,如果您的 URL 仅限于已知的字符子集,例如。 <code>a-zA-Z0-9_(下划线)、-(连字符)、/(斜杠 - 路径分隔符)然后检查有效字符代替。例如:

# Remove everything from the first "invalid character"
RewriteRule ^([\w-/]+)[^\w-/] / [R=301,L]