2013-03-12 93 views
6

道歉,如果我的问题不清楚,但我不熟悉行话。 '资源目录'我的意思是我的CSS,PHP脚本,图像,JavaScript等。使用.htaccess,防止用户访问资源目录,但允许源代码访问资源

我曾经在我的图片目录包含

deny from all 

做到这一点.htaccess文件。虽然这阻止了人们在浏览器中输入“www.example.com/images”并访问我的图像目录,但图像停止出现在我的网站上。

我认为这是因为.htaccess文件甚至否认我的源代码访问图像。我如何让我的源代码访问目录?我也有一个cron作业,每天晚上运行一个php脚本。 cron作业也需要被允许访问脚本目录。

此外,使用.htaccess文件甚至是保护网站的最佳方式?

+1

如果您使用'/ images/something.png'在HTML代码中引用图像,则用户必须有权访问它才能显示它。 – cheesemacfly 2013-03-12 19:54:52

回答

13

要阻止某人查看您的图片目录,您需要禁止Directory Listinghttp://viralpatel.net/blogs/htaccess-directory-listing-enable-disable-allow-deny-prevent-htaccess-directory-listing/

不能使用deny from all,因为没有任何东西可以从一个Web浏览器目录加载,所以你的,你与你的网站载入图像将不会加载任何。

Options -Indexes将不允许用户列出图片目录中的文件。请参阅http://viralpatel.net/blogs/htaccess-directory-listing-enable-disable-allow-deny-prevent-htaccess-directory-listing/

为了保护数据不被可供您使用身份验证的人查看。您可以使用htaccess设置登录字段,或使用PHP或python编写脚本。

登录脚本的htaccess: 脚本: http://www.htaccesstools.com/htpasswd-generator/ 密码文件: http://www.htaccesstools.com/htaccess-authentication/

+0

谢谢,选项 - 索引是很好的阻止人们进入目录。但是,如果他们知道路径,他们仍然可以访问文件,我想阻止他们这样做。 无论如何不使用登录脚本来实现这一点?我的意思是,它只是访问文件的源代码,而不是一组用户。这将如何与一个cron工作? – Starkers 2013-03-12 20:11:21

+0

无法阻止对文件的直接访问,因为需要直接访问才能显示图像。是否要防止盗链?因为这是可能的..请参阅http://altlab.com/htaccess_tutorial.html和生成器:http:// www。htaccesstools.com/hotlink-protection/ – 2013-03-12 20:12:18

0

您可以访问任何目录阻止你想:

加入这个片段在httpd.conf文件(可在这里找到httpd.conf文件C:\ WAMP \ BIN \ apache的\ apache2.4.9 \ BIN)

<Directory "c:/wamp/www/directory_A/"> 
    Options -Indexes 
</Directory> 

在这种情况下,你可以交流禁用www目录但不能在directory_A内部。 或

<Directory "c:/wamp/www/directory_A/uploads/"> 
    Options -Indexes 
</Directory> 

在这种情况下,您可以访问“directory_A /”目录,但不能“内部上传/”。