拒绝所有文件,但使用htaccess拒绝索引/默认页面

Ste*_*ant 3 apache .htaccess

我想拒绝目录中的所有文件,但是index.php(作为默认页面).

该解决方案几乎可以工

Deny from all
<Files index.php>
    Order Allow,Deny
    Allow from all
</Files>
Run Code Online (Sandbox Code Playgroud)

唯一的问题是:'upload/index.php'现在可以访问,但'/ upload /'不是.如何使用htaccess允许默认页面?

SáT*_*SáT 7

你的问题是,你可能已经弄明白了,你要否认所有的东西,然后允许URI'index.php',而不是URI'/' - 即使'/'被重定向到index.php幕后,它仍然是一个不同的URI,因此它也应该被允许.

最简单的方法是使用FilesMatch指令,如下所示:

order allow,deny
<FilesMatch "^(index\.php)?$">
    allow from all
</FilesMatch>
Run Code Online (Sandbox Code Playgroud)

正则表达式^(index\.php)?$意味着"index.php或什么都没有".