My httpd.conf's something like: (domain names changed, of course)
Code:
<VirtualHost 66.160.xxx.xxx>
ScriptAlias /cgi-php/ /vhost/_/usr/bin/php
Action php4-script /cgi-php/php
<Location />
Dav On
AuthType Basic
AuthName "DAV Publishing System"
AuthUserFile /vhost/_/etc/httpd.userpasswd
<LimitExcept GET OPTIONS>
require valid-user
</LimitExcept>
</Location>
<Directory /vhost/>
AllowOverride All
Options +Indexes
Dav On
</Directory>
VirtualDocumentRoot /vhost/%-2.0.%-1.0/%-3+
VirtualScriptAlias /vhost/%-2.0.%-1.0.cgi/%-3+
</VirtualHost>
Of course, that configuration makes all virtual domains have WebDAV by default, and all domains use the same authentication file.