夏期劇*_*期劇場 61 apache .htaccess mod-rewrite hotlinking
我正在使用Apache,我的本地主机上有一个示例Web文件夹,例如:
      http://localhost/test/
文件test夹中的文件:   
     index.html  
     sample.jpg  
     .htaccess  
样本来源index.html:
<html>
  <body>
    <img src="sample.jpg" />
  </body>
</html>
当我运行网站时http://localhost/test/,它只会在页面上显示图像`sample.jpg'.
问题:
http://localhost/test/sample.jpg直接显示在网址栏中.注: 我发现下面的工作方案上的每个浏览器进行测试时,除了火狐.
Rus*_*pov 98
请尝试以下方法:
RewriteEngine on 
RewriteCond %{HTTP_REFERER} !^http://(www\.)?localhost [NC] 
RewriteCond %{HTTP_REFERER} !^http://(www\.)?localhost.*$ [NC] 
RewriteRule \.(gif|jpg)$ - [F]
如果直接访问图像,则返回403,但允许它们在现场显示.
注意:当您打开带有图像的某个页面然后将该图像的路径复制到地址栏中时,您可以看到该图像,这只是因为浏览器的缓存,实际上该图像尚未从服务器加载(来自达沃,下面的完整评论).
tuk*_*k0z 22
罗西波夫的规则很有效!
我在实时网站上使用它来显示空白或特殊消息;)代替对文件的直接访问尝试我宁愿保护一点不被直接查看.我觉得它比403 Forbidden更有趣.
因此,采用rosipov规则将任何直接请求重定向到{gif,jpg,js,txt}文件为'messageforcurious':
RewriteEngine on 
RewriteCond %{HTTP_REFERER} !^http://(www\.)?domain\.ltd [NC] 
RewriteCond %{HTTP_REFERER} !^http://(www\.)?domain\.ltd.*$ [NC] 
RewriteRule \.(gif|jpg|js|txt)$ /messageforcurious [L]
我认为这是一种礼貌的方式,不允许直接访问,例如,像xml,javascript这样的CMS 敏感文件 ......考虑到安全性:现在所有这些机器人都在网上乱写,我想知道他们的算法会从我的' messageforcurious'.
根据您的评论看起来这就是您所需要的:
RewriteCond %{HTTP_REFERER} !^http://(www\.)?localhost/ [NC] 
RewriteRule \.(jpe?g|gif|bmp|png)$ - [F,NC]
我已经在我的localhost上测试了它,它似乎工作正常.
小智 8
首先,找到主apache的配置文件httpd.conf所在的位置.如果您使用Debian,它应该在这里:/etc/apache/httpd.conf.使用像Vim或Nano这样的文件编辑器打开此文件,找到如下所示的行:
Options Includes Indexes FollowSymLinks MultiViews
然后删除单词索引并保存文件.该行应如下所示:
Options Includes FollowSymLinks MultiViews
完成后,重启apache(例如在Debian中重启/etc/init.d/apache).而已!
| 归档时间: | 
 | 
| 查看次数: | 140231 次 | 
| 最近记录: |