【问题标题】:Wordpress URLs not returning 404 PagesWordpress URL 不返回 404 页面
【发布时间】:2017-05-23 00:41:59
【问题描述】:

我需要一些关于 WordPress 的帮助。

我已经彻底清除了黑客攻击,Google 已经删除了“此网站可能被黑客入侵”标志。

黑客向 Google 提交了大量网址,每个有效网址的末尾都包含一个随机字符串。这些在谷歌搜索中显示为日语链接。

列出的 URL 显示为:

www.example.co.uk/?WGlaVUdsVVNHUnNXVzFzY2xwVE1YbFphVGg1VFZSSmVFOVVTVFZQUjJNOWNFUT14b0g

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

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

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

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

【问题讨论】:

    标签: php wordpress .htaccess url seo


    【解决方案1】:

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

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

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

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

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

    匹配除=之外的所有字符。

    更新:要匹配最后一个可选 =,那么您可以在上述正则表达式中的$ 之前包含=?。例如^\w{30,}=?$^[^=]{30,}=?$

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

    RewriteCond %{QUERY_STRING} .
    

    【讨论】:

    • 先生,您真了不起。这正是我需要的!谢谢!最后一个问题。我注意到如果 URL 以 = 结尾,则 URL 不会重定向到 404 页面。有没有办法在最后包含带有 = 的 URL?再次感谢!
    • 不客气。我已经更新了关于最后匹配可选= 的答案。
    • 太好了。太感谢了。这也适用于其他随机字符吗?我注意到其中带有 % 的 URL 没有被重定向到 404。我会重定向所有查询,但我认为 Contact Form 7 插件在按下表单提交按钮时会使用查询。再次感谢您的所有时间。真的很感激。
    • 更新:请忽略以上内容。我更改了条件以匹配您提到的第二个条件,然后为 = Working Perfectly 添加了额外的条件:)
    • 先生,如果我可以请您喝一杯,我会的。非常感谢您的帮助!一切都按要求工作。
    【解决方案2】:

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

    您无能为力。如果我在你的位置,我只会报告这些链接并要求从谷歌方面删除它们。到头来别担心。

    【讨论】:

      猜你喜欢
      • 2021-10-27
      • 2018-04-03
      • 1970-01-01
      • 2020-05-12
      • 1970-01-01
      • 2018-12-01
      • 2011-11-22
      • 2013-08-28
      • 2013-07-15
      相关资源
      最近更新 更多