Блокировать доступ к файлам и подкаталоге с .htaccess?

У меня почти 30 файлов php, 4 подкаталога в моем каталоге. Я хочу заблокировать некоторые php-файлы и подкаталоги от пользователя в прямом просмотре, например http://bhavani.com/hai.php

Мой файл curt 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} ^[AZ]{3,9}\ /includes/ .*$ [NC] ## Test that file requested has php extension RewriteCond %{REQUEST_FILENAME} ^.+\.php$ ## Forbid Access RewriteRule .* - [F,NS,L] 

Как это сделать?

Вы можете фильтровать файлы, подобные этому

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

И каталог, подобный этому

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

Для этого вам не нужен mod_rewrite . Более простой способ сделать это будет с директивой RedirectMatch от mod_alias :

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

Это автоматически ответит 403 Forbidden на прямой запрос для любого PHP-файла внутри include подкаталога, однако вы все равно сможете include их из других php-файлов.

Я думаю, что вы можете использовать только RewriteRule без RewriteCond. Например: RewriteRule ^/hai\.php - [F, NS, L] Это правило запрещает доступ к файлу hai.php. Для других файлов вы можете использовать другое правило или использовать маску.