I worked almost a day on getting Apache 2.4 working with WebDAV.
I was working with Apache 2.4.48, on Debian Bullseye. Refering to the docs on my machine at file:///usr/share/doc/apache2-doc/manual/en/mod/mod_dav.html
. or on the web, https://httpd.apache.org/docs/2.4/mod/mod_dav.html
Here is the sample code:
DavLockDB "/usr/local/apache2/var/DavLock" <Directory "/usr/local/apache2/htdocs/foo"> Require all granted Dav On AuthType Basic AuthName DAV AuthUserFile "user.passwd" <LimitExcept GET POST OPTIONS> Require user admin </LimitExcept> </Directory>
And very useful additional code:
Alias "/phparea" "/home/gstein/php_files" Alias "/php-source" "/home/gstein/php_files" <Location "/php-source"> Dav On ForceType text/plain </Location>
My notes:
- On Debian, you dont need to provide
DavLockDB
. Debian provides a usefull default in/etc/apache2/mods-available/dav_fs.conf
- The
Require all granted
,<LimitExcept GET POST OPTIONS>
combo does not work to limit access. I usedRequire valid-user
and a version of the second snippet to control access. - WebDAV will not work with Apache 2.4 unless you specify
DirectoryIndex disabled
.
Here is my version, with workarounds for these issues.
Alias "/editing/location" "/location/of/wiki" <Location "/editing/location"> # RequestHeader needed only for TiddlyWiki RequestHeader edit "If-Match" '^"((.*)-(gzip|br))"$' '"$1", "$2"' DAV On DirectoryIndex disabled AuthType Basic AuthName "edit wiki" AuthUserFile "some/file" Require valid-user </Location>