У меня почти 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. Для других файлов вы можете использовать другое правило или использовать маску.