【发布时间】:2015-11-09 04:35:03
【问题描述】:
似乎有人在另一个网站的图片参考中拼错了域名。这导致我的网站因请求不存在的图像而受到猛烈抨击。我的服务器没有能力处理这个问题。它不断地发送 404(未找到)响应,最大限度地利用我的资源并使我的托管服务提供商相当不安。
其他网站的管理员没有响应。
我认为我需要发送 403(禁止)而不是 404(未找到)响应。
我的服务器收到的请求如下所示:
GET http://www.mywebsite.com/theirdirectoryname/their-file-name.jpg HTTP/1.1
因此,我尝试将以下内容添加到我的 .htaccess 文件中:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .*(theirdirectoryname).* - [F]
</IfModule>
这不起作用。我的服务器仍然响应 404 而不是 403。
谁能看出我做错了什么?
我的服务器正在运行 WordPress。所以我的 htaccess 中有一个 WordPress 部分,以及一个 W3TC 浏览器缓存部分,如果这有什么不同的话。
【问题讨论】:
-
您是否考虑过添加图像作为该文件名,然后可能将 chmod 更改为 440?
-
我有点担心我的服务器也无法处理这个问题。我经常在一秒钟内收到几个请求。我的理解是 403 响应占用的资源最少?
-
您是否试图禁止访问整个目录(从浏览器和机器人)?如果是这样,您可以在该目录中创建一个 .htaccess 文件,其中包含“全部拒绝”。
-
现在已经完成了。我的服务器仍然返回 404 而不是 403。
-
你把这个指令放在哪里了?该指令需要放在 .htaccess 文件的最顶部。但应该只是:
RewriteRule ^theirdirectoryname - [F](并不是说这实际上会有所作为)。这可能是因为 WordPress 正在处理此请求,您的资源已被最大化。 404 本身应该不是问题。
标签: wordpress .htaccess mod-rewrite http-status-code-404 http-status-code-403