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



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

这种解决方案几乎有效:

Deny from all
<Files index.php>
    Order Allow,Deny
    Allow from all
</Files>

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

你的问题是,正如你可能已经发现的那样,你拒绝了所有的东西,然后允许URI"index.php",但不允许URI"/"——即使"/"在幕后被重定向到index.php,它仍然是一个不同的URI,因此它也应该被允许。

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

order allow,deny
<FilesMatch "^(index.php)?$">
    allow from all
</FilesMatch>

正则表达式^(index.php)?$的意思是"index.php或者什么都没有"。

您可以尝试使用mod_rewrite,将现有内容替换为:

RewriteEngine On
RewriteCond %{REQUEST_URI} !^/(index.php)?$
RewriteRul ^ - [L,F]

最新更新