上层目录中的 .htaccess 被忽略

上层目录中的 .htaccess 被忽略

我在 /var/www/html/htc 目录中有一个 .htaccess 文件,其中包含针对 bookmatic.net 的特定规则,还有另一个 .htaccess 文件,其中包含针对 /var/www/html 中所有域的一般规则

访问 bookmatic.net 时,/htc 中的 .htaccess 文件运行正常,但 /html 中的文件被忽略。有人能帮忙吗?

bookmatic.net 在 httpd.conf 中的规范如下:

<VirtualHost *:443>
    ServerName bookmatic.net
    ServerAlias *.bookmatic.net
    DocumentRoot /var/www/html/htc
    AllowEncodedSlashes On

    <Directory /var/www/html/htc>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Require all granted
        LimitRequestBody 25000000
        LimitXMLRequestBody 25000000
    </Directory>

    RewriteEngine on
</VirtualHost>

答案1

AllowOverride All.htaccess是告诉 Apache 在文件中查找更多配置的指令。

该 vhost 告诉 Apache 在 及更深层的地方查找.htaccess文件/var/www/html/htc,所以它不会覆盖.htaccess中的文件/var/www/html

解决这个问题的一种方法是创建另一个像这样的块(可能在httpd.conf这个 vhost 中,如果这样更有意义的话):

<Directory /var/www/html>
     AllowOverride All
</Directory>

答案2

你有AllowOverride All<Directory /var/www/html/htc>我想这是不允许的/var/www/html。你可以试试:

<Directory /var/www/html>
    AllowOverride All
</Directory>

相关内容