2

我的目录中有近 30 个 php 文件,4 个子目录。我想阻止用户直接查看的一些 php 文件和子目录,例如 http://bhavani.com/hai.php

我的当前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]

怎么做?

4

3 回答 3

5

您可以像这样过滤文件

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

和这样的目录

<Directory "/subdirectory">
  Deny from all
</Directory>
于 2012-11-16T08:47:47.943 回答
4

你不需要mod_rewrite完成这个。一个更简单的方法是使用RedirectMatch指令 from mod_alias

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

这将自动响应对子目录403 Forbidden中任何 PHP 文件的直接请求include,但是您仍然可以include从其他 php 文件中访问它们。

于 2012-11-16T08:49:49.240 回答
0

我认为你可以只使用 RewriteRule 而没有 RewriteCond 例如: RewriteRule ^/hai\.php - [F, NS, L] 该规则禁止访问文件 hai.php 对于其他文件,您可以使用其他规则或使用掩码。

于 2012-11-16T08:46:52.383 回答