.htaccess 适用于虚拟主机,但不适用于 public_html

.htaccess 适用于虚拟主机,但不适用于 public_html

问题是当我有一个指向某个用户的 public_html/* 的 docroot 时。假设有一个虚拟主机,其 Docroot 为 /home/user/public_html/www - .htaccess 可以正常工作。但是当我访问 example.com/~user/www 时,.htaccess 不起作用,Apache 甚至无法读取它(我通过在其中创建乱码内容进行了测试)。

我对 userdir 的配置是:

<IfModule mod_userdir.c>
    UserDir public_html
    UserDir disabled root

    <Directory /home/*/public_html>
            Options MultiViews -Indexes SymLinksIfOwnerMatch IncludesNoExec
            AllowOverride All
            <Limit GET POST OPTIONS>
                    Order allow,deny
                    Allow from all
            </Limit>
            <LimitExcept GET POST OPTIONS>
                    Order deny,allow
                    Deny from all
            </LimitExcept>
    </Directory>
</IfModule>

对于虚拟主机:

<VirtualHost *:80>
  ServerName example.com
  DocumentRoot /home/user/public_html/www
</VirtualHost>

/home/user/public_html/www 中的 .htaccess

答案1

当我遇到类似问题时,除了 Directory 指令括号外,我还使用了 Location 指令括号。

相关内容