Apache 的允许和拒绝的复杂组合

Apache 的允许和拒绝的复杂组合

使用 Apache,我搜索了拒绝访问子目录中所有 *.php URL 的方法。我在 .htaccess 中成功做到了这一点:

Order deny,allow
Allow from All

<Files ~ "^.*\.php$">
    Deny from All
</Files>

但现在,我想为被拒绝的单个 URL 添加额外的访问权限。我做了很多测试,但没有得到任何效果或“错误 500”,例如:

Order deny,allow
Allow from All

<Directory "/home/site/www/repertoire1/repertoire2/">
    <Files "fichier.php">
        Allow from All
    </Files>
</Directory>

<Files ~ "^.*\.php$">
    Deny from All
</Files>

这个 .htaccess 位于“repertoire1”中,我想要允许的 URL 是http://example.com/repertoire1/repertoire2/fichier.php

我无法将文件放在目录“repertoire2”中,然后我想将所有访问规则放在一个 .htaccess 文件中

答案1

您不能<Directory>在 .htaccess 中使用,上下文是服务器配置或虚拟主机: http://httpd.apache.org/docs/2.2/en/mod/core.html#directory

您必须在 /home/site/www/repertoire1/repertoire2/ 中设置另一个 .htaccess

<Files "fichier.php">
    Allow from All
</Files>

在里面

相关内容