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 used Require 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>