首页 > 解决方案 > 阻止访问虚假 PDF 页面的流量

问题描述

我的网站有很多 404 点击到网站上从未存在的 PDF 页面。这些都是 spammy-subject.pdf URL。我每天得到几十个,这比真正的网站流量要高得多。

我目前正在为每个添加 410 次重写。

我可以使用 htaccess 规则完全阻止此流量到达此站点吗?在它变成404之前?

标签: .htaccesspdfhttp-status-code-404block

解决方案


我可以使用 htaccess 规则完全阻止此流量到达此站点吗?

您可以使用.htaccess来防止请求通过使用前端控制器模式的 CMS(例如 WordPress、Joomla 等)进行路由 - 如果这就是您所说的“站点”的话。但是,在处理文件时请求已经到达您的服务器.htaccess,因此在其中执行任何.htaccess操作都不一定有助于“静态站点”。

如果您已经返回 404(或 410) - 在它到达您的站点之前- 那么问题已经解决。

唯一的潜在问题是请求是否通过您的 CMS 进行路由,并且 404 是由您的 CMS 触发的,而不是 Apache。这表明您将指令放在.htaccess文件中的错误位置(或根本不存在)?.htaccess在任何现有的重写之前,像这样的阻塞指令需要位于文件的顶部。

例如:

# Prevent 404 request being routed unnecessarily through CMS
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule \.pdf$ - [NC,R=404]

提供 410 Gone 而不是 404 没有任何优势,除非这些文件以前存在并且您正试图将它们从搜索引擎中删除(或告诉第三方它们不再存在)。

更新:

此代码应该在最顶部还是在开始的 Wordpress 规则之后: RewriteEngine On ?

它需要位于最顶部,在注释# BEGIN WordPress标记之前(您应该避免手动编辑 WordPress 部分中的代码,因为 WordPress 本身维护该部分并且您的编辑将被覆盖)。

是的,这是在RewriteEngine On指令之前。您不需要重复该RewriteEngine指令。指令的位置RewriteEngine实际上并不重要。如果文件中有该指令的多个实例,则最后一个实例获胜并控制整个文件。(这是一种快速有效地注释掉文件中所有 mod_rewrite 指令的方法,只需在最后RewriteEngine Off放置一个指令。)


推荐阅读