2016-09-15 139 views
0

我正在开发一个项目,一个小小的项目。 而我会很有趣,不允许通过URL直接访问文件。禁止直接访问文件

就像你有一个名为“股票”的文件夹所在的所有图像。 例如,您以图像猫为例,我想禁止通过此URL直接访问此文件mysite.com/stock/cat.jpeg

但是,在同一时间,我希望能够使用这些图片在我的网站上。

什么是最好的方法来实现呢?我在“股票”文件夹中使用了.htaccess,全部都是Deny。但我无法使用该文件。

目前,我在本地主机上工作,但我会把这个活下去。而我的框架(PHP)是CodeIgniter。

感谢,并有一个美好的一天:)

+0

可能重复[(htaccess)如何防止直接URL访问文件](http://stackoverflow.com/questions/10236717/htaccess-how-to-prevent-a-file-from-direct- url-access) – Takarii

+0

试试这个答案http://stackoverflow.com/questions/21647750/how-to-view-images-from-protected-folder-with-php –

回答

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答案。

+0

谢谢,但第二个解决方案是最好不是? 我必须把广域网或局域网地址? –

+0

你应该把你在这里看到的地址:http://www.ip-adress.eu/ – FluxCoder

+0

当我使用这个地址,我有一个403错误:/ –