2012-11-16 83 views
2

我有近30個php文件,4個子目錄在我的目錄中。我想阻止用戶一些PHP文件和子目錄中直接觀看像http://bhavani.com/hai.php使用.htaccess阻止訪問文件和子目錄?

我當期的htaccess文件

## Enable Mod Rewrite, this is only required once in each .htaccess file 
RewriteEngine On 
RewriteBase/
## Test for access to includes directory 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /includes/ .*$ [NC] 
## Test that file requested has php extension 
RewriteCond %{REQUEST_FILENAME} ^.+\.php$ 
## Forbid Access 
RewriteRule .* - [F,NS,L] 

怎麼辦呢?

+0

你可以在php文件開始創建一個簡單的if()語句,如用戶登錄或任何你需要訪問他們,如果沒有的話標題(「404」);出口; – Lucas

回答

0

我想你可以只使用重寫規則沒有的RewriteCond 例如: RewriteRule ^/hai\.php - [F, NS, L] 此規則禁止訪問文件hai.php 對於其他文件,您可以使用其他規則或使用面膜。

5

您可以過濾文件,這樣

<Files ~ "\.php$"> 
    Deny from all 
</Files> 

和目錄這樣

<Directory "/subdirectory"> 
    Deny from all 
</Directory> 
+0

它拒絕所有文件。但我想喜歡的index.php – jaya

+0

@jayamalladi一些文件,上面創建類似的'index.php'另一個規則 – Starx

5

你不需要mod_rewrite做到這一點。這樣做的一個更簡單的方法是用RedirectMatch指令從mod_alias

RedirectMatch 403 ^.*/include/*\.php$ 

這將自動403 Forbidden響應對內部include子目錄任何PHP文件的直接請求,但你仍然可以include他們在其他的PHP文件中。