Wordpress URL 不返回 404 页面

Wordpress URLs not returning 404 Pages

我在 WordPress 遭到黑客攻击后需要一些帮助。

我已经完全清除了黑客入侵,Google 删除了“此站点可能被黑客入侵”标志。

黑客向 Google 提交了大量 URL,其中每个有效 URL 末尾包含一个随机字符串。这些在 google 搜索中显示为日语 link。

列出了 URL 个,显示为:

www.example.co.uk/?WGlaVUdsVVNHUnNXVzFzY2xwVE1YbFphVGg1VFZSSmVFOVVTVFZQUjJNOWNFUT14b0g

如果我单击 link,它会显示站点正确的主页,而不是显示 404 页面。

如果我转到 www.example.co.uk/thispagedoesnotesist,它会正常显示 404 错误。

有没有办法让包含这些随机 URL 字符串的页面显示 404 错误?

任何帮助或建议都会很棒。

问题是这些链接使用参数指向您的主页。这些随机文本字符串不会作为 url 的段或页面传递,因为它们前面有 ?.

您无能为力。如果我处在你的位置,我只会报告这些链接并要求从 Google 那里删除它们。你这边不用担心。

您可以使用 .htaccess 中的以下 mod_rewrite 指令将包含长随机查询字符串的 URL 强制为 404。这需要在 之前 您现有的 WordPress 指令:

RewriteCond %{QUERY_STRING} ^\w{30,}$
RewriteRule ^$ - [R=404,L]

对包含 30 个或更多查询字符串的文档根目录(主页)的请求 letters/digits 然后提供 404。

但是,如果 URL 中的 日文 字符(与您的示例中的 a-z 相反),则上述内容可能不匹配,因此请尝试以下操作相反:

RewriteCond %{QUERY_STRING} ^[^=]{30,}$

匹配除了 =.

以外的所有字符

更新: 要匹配末尾的 optional = 然后你可以在前面包含 =? $ 在上面的正则表达式中。例如 ^\w{30,}=?$^[^=]{30,}=?$.

如果您根本不使用查询字符串,那么您可以将 RewriteCond 指令更改为以下内容,它匹配 any 查询字符串(至少1 个字符)。

RewriteCond %{QUERY_STRING} .