禁止直接访问文件

时间:2016-09-15 12:45:30

标签: php .htaccess file codeigniter url

我正在开展一个项目,一个小项目。 而且我很乐意禁止通过URL直接访问文件。

就像你有一个名为“stock”的文件夹,其中包含所有图像。 例如,你拿图像猫,我想禁止通过这个URL直接访问这个文件mysite.com/stock/cat.jpeg

但是,与此同时,我希望能够在我的网站上使用这些图像。

实现这一目标的最佳方式是什么?我在“stock”文件夹中使用了.htaccess,其中包含了Deny。但是我无法使用该文件。

目前,我在localhost上工作,但我会把它放到现场。我的框架(PHP)是CodeIgniter。

谢谢,祝你有个美好的一天:)

1 个答案:

答案 0 :(得分:0)

你仍然可以使用.htaccess,我提供了一些你可以使用的代码,删除www。域名和域名tld并用最适合你的东西替换它。

RewriteEngine on 
RewriteCond %{HTTP_REFERER} !^http://(www\.)?domain\.ltd [NC] 
RewriteCond %{HTTP_REFERER} !^http://(www\.)?domain\.ltd.*$ [NC] 
RewriteRule \.(gif|jpg|js|txt)$ /messageforcurious [L]

这应该使它只允许本地访问允许。

如果您要求允许IP地址连接,那么您可以使用以下内容:

order deny,allow
deny from all
allow from <your ip> 

如果以上操作不起作用,您还可以编辑.htaccess文件,看看是否可行:

RewriteEngine On
RewriteCond %{REMOTE_ADDR} !^123\.456\.789\.123$
RewriteRule .* - [F]

这里的一些代码来自this回答。