Wordpress - 在Htaccess中强制404错误

时间:2017-01-05 12:06:44

标签: wordpress apache .htaccess mod-rewrite http-status-code-404

几个星期前我的网站被黑了,现在我正在从我的页面删除所有垃圾链接的阶段。其中一些是301重定向到我网站的合法网页,这影响了我的搜索引擎优化。

示例:

  • www.example.com/?attachment_id=93(在Google搜索结果中显示为垃圾内容)---> www.example.com/(合法页面)。
  • www.example.com/z(在Google搜索结果中显示为垃圾内容)---> www.example.com/zlatni-rat-...(合法页面)。

但是,我不确定如何将其放入.htaccess。每当我尝试一些东西时,我的整个网站都会出现404错误或图像不会出现等等。

这是我尝试过的事情

  1. 在文件底部添加它(不起作用):

    ErrorDocument 404 /z
    ErrorDocument 404 /?attachment_id=93**
    
  2. <IfModule mod_rewrite.c>代码标记中添加以下内容。

    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    ....
    RewriteCond %{REQUEST_URI} !^/(?attachment_id=93|z)$ [NC]
    RewriteRule ^ - [L,R=404]   
    </IfModule>
    
  3. 这使整个网站无法运作!

    感谢您提供的任何帮助!

1 个答案:

答案 0 :(得分:0)

ErrorDocument 404 /z

ErrorDocument定义了自定义错误文档,因此确实无效。但如果您只想拒绝垃圾邮件/无效网址,则不需要这样做。

  

<IfModule mod_rewrite.c> ...

中添加以下内容

您还需要在现有的WordPress指令之前放置这些指令。除了错误之外,如果将它们放在WordPress前控制器之后,它们将永远不会被处理。

但是,如果您已经“修复”了被黑网站,那么这些网址(可能是无效的)不应该重定向,它们应该已经导致404了?如果您仍然看到重定向,则可能是浏览器缓存中的缓存重定向。

无论如何,为了让Google能够更快地从搜索结果中删除这些网址,那么返回410 Gone可能会更好。通过问题中的两个示例,您需要.htaccess中的两个规则。如下所示:

# www.example.com/?attachment_id=93
RewriteCond %{QUERY_STRING} ^attachment_id=93$
RewriteRule ^$ - [G]

# www.example.com/z
RewriteRule ^z$ - [G]