5

Is it possible to enable the UserDir Directive for just one VirtualHost rather than have it on for all and then disable it (with "UserDir disable") for each VirtualHost you don't want it on?

I have tried by putting this inside a <VirtualHost> and comment out everything in the global config (/etc/apache2/conf.d/userdir.conf). No luck though.

<IfModule mod_userdir.c>
    UserDir public.www
    UserDir disabled root

    <Directory /home/*/public.www>
            AllowOverride FileInfo AuthConfig Limit Indexes
            Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
            <Limit GET POST OPTIONS>
                    Order allow,deny
                    Allow from all
            </Limit>
            <LimitExcept GET POST OPTIONS>
                    Order deny,allow
                    Deny from all
            </LimitExcept>
    </Directory>
</IfModule>
dentarg
  • 151
  • 1
  • 5
  • You might have missed that `LoadModule userdir_module /usr/lib/apache2/modules/mod_userdir.so` is required, too. – xebeche Oct 23 '20 at 21:22

2 Answers2

4

I only removed the UserDir public.www (in my case UserDir public_html) from the userdir.conf. Then I added that line to my site configurations where I wanted mod_userdir to be active.

<VirtualHost *:80>
        ServerName userdirs.example.com

        <IfModule mod_userdir.c>
                UserDir public_html
        </IfModule>
</VirtualHost>
Oliver Salzburg
  • 4,505
  • 16
  • 53
  • 80
0

That should work, however there is a defect reported here:

https://issues.apache.org/bugzilla/show_bug.cgi?id=44076

That prevents "normal" merging which is ironically what you're trying to avoid -- maybe because it's not working?

What exactly happens with your current configuration? Is mod_userdir loaded?

covener
  • 1,665
  • 9
  • 15