问题是当我有一个指向某个用户的 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 指令括号。