2012-03-22 96 views
6

我有我的網站上的各種子文件夾,我希望用戶不能通過URL訪問它們,但同時我的主要PHP文件能夠包含它們或者將它們用作表單或鏈接上的操作。.htaccess允許訪問文件只包括從

我嘗試使用一個.htaccess與

<Files *> 
    Order Allow,Deny 
    Deny from All 
</Files> 

但否認甚至從我自己的腳本中的所有訪問。邏輯,因爲我發現了,但我不知道如何使其工作。有任何想法嗎?

P.S.我主要關心的是一些文件不包含在主要的PHP文件中,但是它們被鏈接在那裏,並且它們的代碼以返回到項目的主頁的header('Location: ../index.php');結束。

回答

1

平時要保護公衆訪問您可以

  1. 把它放在保護的目錄中的這些邏輯文件,上面的htdocs
  2. 添加一個檢查公共常數.. if(!is_defined(some_root_const)){die();}
  3. 變化擴展。公司或東西..並拒絕.htaccess的基礎上,
3

有一個更安全的方法。將您的包含文件存儲在Web可訪問的文件夾下。所以,如果你的網頁文件都在這裏...

/var/www/mysite.com/

Store中的位置包括文件:

在/ var /包括/

然後將它們包含一個完整路徑...

include '/var/includes/myincludes.inc.php'; 

從網絡上,myincludes.inc.php文件是完全無法訪問的。

3

這樣做:

<Files *> 
    Order Deny,Allow 
    Allow from 192.168.100.123 127.0.0.1 
    Deny from all 
</Files> 

IP的名單將是您允許特定主機,像本地主機。

這也適用於指令,而不僅僅是文件,如果你只想阻止某些目錄。

+0

我' \t訂購允許試了一下,拒絕 \t從127.0.0.1 \t允許所有 ' 拒絕,但它阻止所有從AJAX函數調用的文件。 – 2012-03-22 16:05:42

+0

當然,因爲它們是客戶要求的。您不能「允許客戶端」和「不允許客戶端」提供文件。 – Ray 2012-03-22 16:07:30

0

在你的.htaccess中,你將不得不指定你想要允許的IP,你可以在每個目錄下執行它。例如,

<Directory /dir/to/block> 
    Order Allow,Deny 
    Allow from 192.168.0.1 4.4.4.4 
    Deny from All 
</Directory> 
<Directory /dir/to/allow> 
    Order Allow, Deny 
    Allow from All 
</Directory> 
6

我看到了很多與允許的答案,拒絕不拒絕,允許

該事項的順序和引起的問題。你告訴計算機,拒絕比允許更重要,因爲它是最後列出的。爲了向你展示......如果你說:

<Files .htaccess> 
Order Allow,Deny 
Deny From All 
Allow From xxx.xxx.xxx.xxx 127.0.0.1 
</Files> 

你的意思是先允許任何人允許,然後拒絕所有...仍然拒絕所有。

如果您改爲拒絕,請允許您說拒絕全部,然後允許任何人允許。

<Files .htaccess> 
Order Deny,Allow 
Deny From All 
Allow From xxx.xxx.xxx.xxx 127.0.0.1 
</Files> 

允許命令,因爲它是最後一個命令,所以更重要,因此允許在Allow From命令後列出的命令。

xxx.xxx.xxx.xxx =您的IP

相關問題