拒绝直接访问,但允许常规html

拒绝直接访问,但允许常规html,html,.htaccess,permissions,Html,.htaccess,Permissions,我在上传目录中有以下.htaccess: order allow,deny deny from all 我想允许但得到forbbiden错误(403) 如何拒绝直接访问但允许html“包含”(常规html)?您需要在 RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://(www\.)?mydomain.com/.*$ [NC] RewriteRule \.(gif|jpg|j

我在
上传
目录中有以下
.htaccess

order allow,deny
deny from all
我想允许
但得到forbbiden错误(403)


如何拒绝直接访问但允许html“包含”(常规html)?

您需要在

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?mydomain.com/.*$ [NC]
RewriteRule \.(gif|jpg|js|css)$ - [F]
一定要用你自己的来替换“mydomain.com”。

你不能(可靠地)

无论是直接查看还是作为
标记查看,浏览器仍会请求
http://yoursite.example.com/upload/image.png
,就服务器而言,这两个请求基本相同

现在在大多数浏览器中,来自
标记的请求将伴随一个
Referer:
HTTP头,您可以在Apache配置中使用该头来过滤这些请求,但是:

  • 这不会保护您的图像,任何试图获取图像的人都可以添加它们,例如从命令行:
    curl-e'http://my_referer.example.com' 'http://yoursite.example.com/upload/image.png“
  • 在人们通过网页查看图像后,如果他们在地址栏中键入URL,则图像可能会从浏览器缓存中提供,并且无论您有何服务器配置,图像都会出现

你想完成什么?您可以对图像进行base64编码,并将其放置在img标记的src属性本身中,使用与此处类似的技术:


可能有更先进的方法来隐藏图像数据,但最终你无法阻止那些想四处闯荡的人。

我不希望我的用户直接访问这些文件。通过这种方式,所有来自我的域的直接访问都将被允许。