我有一个像这样的文件夹结构:
subdir
|_ subsubdir
|_ index.php
|_ other_stuff.php
|_ images
|_ pic.jpg
.htaccess
config.ini
index.php
.htacces文件的内容:
Options +FollowSymLinks -MultiViews -Indexes
Order Deny,Allow
<FilesMatch "(\.ini$)|(\.php$)|(^\.)">
Deny from all
</FilesMatch>
<Files index.php>
Allow from all
</Files>
我的目标是阻止用户查看subdir / subsubdir / index.php(以及所有其他* .php文件,无论在哪里,但这已经有效)但允许他们查看索引.php在根目录中。
目前,用户显然仍然可以看到subdir / subsubdir / index.php,因为所有名为“index.php”的文件都是允许的,但我不知道如何允许只是一个在根目录中并拒绝所有其他目录。我尝试过不同的事情,但要么完全否定或允许所有事情。
我觉得这应该是一项非常简单的任务,但我无法理解。
我尝试过的事情:
<FilesMatch "\.\/index\.php">
Allow from all
</FilesMatch>
---
<FilesMatch "^index\.php$">
Allow from all
</FilesMatch>
---
<Files ./index.php>
Allow from all
</Files>
---
<Files /index.php>
Allow from all
</Files>
答案 0 :(得分:4)
注释掉FilesMatch
块:
并使用此代码:
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/index\.php$ [NC]
RewriteRule ^\.|\.(ini|php)$ - [F,NC]