【发布时间】:2012-05-27 22:11:50
【问题描述】:
是否可以在应用程序目录中放置一些内容到 htaccess,以便某些请求在服务器级别被拒绝并且根本不会到达应用程序(在我的情况下是 Drupal),并且不要向应用程序日志发送垃圾邮件“找不到页面”?
我认为对 htaccess “禁止”的文件的请求被服务器拒绝并且没有进一步处理,但事实并非如此。
例子:
假设我自己的站点域是 example.com。 htaccess 有以下几行(这是防止盗链 jpg 图像的简化设置):
RewriteCond %{HTTP_HOST} ^example\.com [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://([-a-z0-9]+\.)?example\.com [NC]
RewriteRule \.(jpg)$ - [F,NC,L]
它可以工作,例如,如果我转到 http://altlab.com/hotlinking.html 并从我的 example.com 站点输入一个现有的 jpg 地址,它说图像无法显示。所以它被阻止了,好的。但是上面的请求也反映在了Watchdog(Drupal的内部日志)中,这是不行的。
有没有一种方法可以拒绝 Apache 服务器对 jpg 文件的外部域请求,并且不将这些请求进一步传递给应用程序?
【问题讨论】: