拒绝直接访问文件,但允许php和html从.htaccess中读取它

时间:2012-05-30 11:49:44

标签: apache .htaccess

我需要知道如何拒绝访问图像文件文件夹,但只允许从php / html中读取它。

我认为最好的方法是在该文件夹中使用.htaccess,如

deny from all
Options -indexes
AddHandler cgi-script .php .htm .html .sh
Options -ExecCGI

但这不起作用,因为我必须在根文件夹.htaccess后面

<FilesMatch "\.(gif|jpe?g|doc?x|pdf|zip|png)$">
AddHandler cgi-script .php .htm .html .sh
Allow from all
</FilesMatch>
<Files 403.shtml>
order allow,deny
allow from all
</Files>

解决方案

RewriteCond %{HTTP_HOST} ^xxx.com$
RewriteRule ^/?$ "http\:\/\/www\.xxx\.com\/index\.php" [R=301,L] 
RewriteCond %{HTTP_REFERER} !^http://(www\.)?xxx\.com/.*$ [NC]
RewriteRule _files/photo/([^/]+)\.(gif|png|jpg)$ - [F] 

也没有工作......?任何专家?

1 个答案:

答案 0 :(得分:2)

用以下内容替换现有代码:

RewriteCond %{HTTP_HOST} ^xxx\.com$
RewriteRule ^$ http://www.xxx.com/index.php [R=301,L] 

RewriteCond %{HTTP_REFERER} !^http://(www\.)?xxx\.com/ [NC] 
RewriteRule ^_files/photo/[^.]+\.(jpe?g|gif|bmp|png)$ - [F,NC]