Проблема в том, что у меня есть корневой каталог, указывающий на public_html / *. Скажем, есть виртуальный хост с 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>
Для vhosts:
<VirtualHost *:80>
ServerName example.com
DocumentRoot /home/user/public_html/www
</VirtualHost>
.htaccess в / home / user / public_html / www
Когда у меня возникали подобные проблемы, я использовал скобку директивы Location в дополнение к директиве Directory.