使用 .htaccess 阻止 index.php 除根目录外的任何地方
Block index.php everywhere except in the root directory with .htaccess
我有这样的文件夹结构:
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 文件,无论在何处,但这已经有效)但是 允许他们在根目录中看到index.php。
目前,用户显然仍然可以看到 subdir/subsubdir/index.php,因为允许所有名为 "index.php" 的文件,但我不知道如何允许 [=26] =]只是 根目录中的那个,拒绝所有其他的。我尝试过不同的东西,但最终要么完全拒绝,要么全部允许。
我觉得这应该是一件很容易的事,但我就是想不通。
我尝试过的事情:
<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>
注释掉两个 FilesMatch
块:
并使用此代码:
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/index\.php$ [NC]
RewriteRule ^\.|\.(ini|php)$ - [F,NC]
我有这样的文件夹结构:
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 文件,无论在何处,但这已经有效)但是 允许他们在根目录中看到index.php。
目前,用户显然仍然可以看到 subdir/subsubdir/index.php,因为允许所有名为 "index.php" 的文件,但我不知道如何允许 [=26] =]只是 根目录中的那个,拒绝所有其他的。我尝试过不同的东西,但最终要么完全拒绝,要么全部允许。
我觉得这应该是一件很容易的事,但我就是想不通。
我尝试过的事情:
<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>
注释掉两个 FilesMatch
块:
并使用此代码:
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/index\.php$ [NC]
RewriteRule ^\.|\.(ini|php)$ - [F,NC]