【发布时间】:2016-07-24 11:28:57
【问题描述】:
我正在使用 .htaccess 规则来防止直接访问图像目录。这是.htaccess代码
Deny from all
我把这个 .htaccess 文件放到图像目录中。
问题是当我尝试访问网页中的某些图像时,它给我的图像加载失败错误,或者您可以说图像不存在。
<img class="highlight-right wow animated" src="/img/spark.png" height="192" width="48" alt="">
我想拒绝直接访问它的人访问它,但至少它应该在网页上工作。
对此有任何建议。
编辑: 我试过这个规则
RewriteCond %{HTTP_REFERER} !^http://(www\.)?localhost/ [NC]
RewriteRule \.(jpe?g|gif|bmp|png)$ - [F,NC]
和
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http://(www\.)?localhost [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?localhost.*$ [NC]
RewriteRule \.(gif|jpg|png)$ - [F]
但由于网页上未显示图像,因此两者都无法正常工作。
【问题讨论】:
-
那么你需要根据你的.htaccess中的referrer来制定一个条件规则。请注意,这远非完美,它可能会阻止真正的访问者,并且不会阻止其他人获得它,具体取决于他们客户的配置。
-
@JuliePelletier 感谢您的评论。我对.htaccess 不太熟悉。你能解释一下吗?
-
@CalculatingMachine 我会保留您的拒绝规则以阻止所有外部访问,但使用 PHP 在内部访问文件。看我的回答。