我的.htaccess文件中有以下内容:
<Files *.php>
Order Allow,Deny
Deny from all
</Files>
<Files index.php>
Order Allow,Deny
Allow from all
</Files>
上面的代码是限制只访问index.php文件。但是,问题是如果子目录下有另一个index.php文件,那么也允许执行该index.php文件。这不是我想要的。我想要这样的东西:
<Files /home/user/public_html/index.php>
Order Allow,Deny
Allow from all
</Files>
和
<Files /home/user/public_html/admin/index.php>
Order Allow,Deny
Allow from all
</Files>
(我只想要执行2个index.php文件)
但是上面的工作没有用,因为它会拒绝执行应该允许的index.php(同样,应该允许两个,一个在根目录下网站,另一个在管理文件夹下)。
有没有人有关于如何做到这一点的任何提示?
答案 0 :(得分:2)
使用带有正则表达式支持的mod_rewrite
规则仅允许/index.php
或/admin/index.php
:
RewriteEngine On
RewriteRule ^(?!(admin/)?index\.php$).+?\.php$ - [F,NC]
Files
或FilesMatch
不适用于路径,但适用于单个文件名。