2016-09-15 57 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錯誤:/ –