防止直接调用文件

我甚至不确定这是否可能; 我在一个Apache服务器上。 对于位于以下位置的文件

http://www.example.com/dir/img.jpg 
  • 允许将该图像加载到从该目录调用的页面中。
  • 不允许直接加载此图像; 即。 上面的url不应该加载
  • 防止从位于其他地方的页面链接此图像

目的是该文件应该只能够显示在其预定的特定页面上; 它不应该直接查看。 可以这样做吗?

从Apache文档 :

被阻塞的内联图像

说明:假设我们在http://www.quux-corp.de/~quux/下有一些内嵌GIFgraphics的页面。 这些graphics很好,所以其他人直接通过超链接将它们合并到他们的页面。 我们不喜欢这种做法,因为它增加了无用的stream量到我们的服务器。

解决scheme:虽然我们无法100%保护包含的图像,但我们至less可以限制浏览器发送HTTP Referer头部的情况。

 RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://www.quux-corp.de/~quux/.*$ [NC] RewriteRule .*\.gif$ - [F] RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !.*/foo-with-gif\.html$ RewriteRule ^inlined-in-foo\.gif$ - [F]