2013-03-12 123 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 /」目錄,但不能「內部上傳/」。