Setting it up
These steps switch the WebDAV server on for one or more siteaccesses and make the web server pass WebDAV requests to it.
1. Switch it on
# settings/override/webdav.ini.append.php [GeneralSettings] EnableWebDAV=true
2. Choose the siteaccesses
The siteaccesses offered to WebDAV clients are those in SiteList[]:
# settings/override/site.ini.append.php [SiteSettings] SiteList[] SiteList[]=site SiteList[]=admin
3. Clear the INI cache
php bin/php/ezcache.php --clear-tag=ini
Under PHP-FPM, reload it; with Exponential Velocity, restart it (./console exp:velocity restart).
4. Let the web server reach the script
On the same host as the site, uncomment this line in the .htaccess made from .htaccess_root, so that the rewrite rules leave index_webdav.php alone:
RewriteRule ^index_webdav\.php - [L]
Clients then connect to https://www.example.com/index_webdav.php/<siteaccess>/.
Alternatively, give WebDAV a host of its own, for example webdav.example.com, and send every request on it to the script:
<VirtualHost *:443>
ServerName webdav.example.com
DocumentRoot /path/to/exponential
RewriteEngine On
RewriteRule . /index_webdav.php [L]
# the TLS settings of your site go here
</VirtualHost>
Name index_webdav.php in new rules: webdav.php only forwards to it and will be removed in a later major version.
5. Test
Connect with a WebDAV client to the address of step 4, choose a siteaccess and sign in. To see what the server receives, set Logging=enabled in webdav.ini [GeneralSettings] and read var/log/webdav.log.
Related pages
Contributors
- Balazs Halasy
- Geir Arne Waaler
- Marco Commenter
- Gaetano Commenter
- vytis Commenter
- Seth Gottlieb Commenter
- Graham Brookins Updated Maintainer
Comments (6 historical)
Written by readers of the earlier documentation sites, kept as they were.
Comments
Marco ·
There is an image missing/not displayed on that page: "IE Open Dialog"
Also, this documentation shows how to set up WebDAV using virtual host setup. This requires access to DNS and Apache names/setup for the server (at least, you'll need to be able to create a subdomain and create/modify Rewrite Rules in Apache).
I know, that it is possible to run WebDAV without a dedicated Host name using just another Rewrite Rule.
But: Is WebDAV also availbe for those, who cannot access the rewrite Rules?
webdav and windows XP
Gaetano ·
The documented method to use internet explorer is in fact wrong for windows XP (at least with SP2 and IE7).
There are two dav connectors in xp, and the default one (called mini-redirector) is so buggy it is basically useless. Also by default it does not support basic http auth, which is the method used by Exponential. You have to edit a reg key to allow it, see KB #841215.
The recommended way to create a dav connection making sure the other connector (aka 'web folders') is used, is to add the port number at the end of the server address, starting from 'my neighborhood' | add network resource.
Please note that it is also a good idea to update the web folders software package first. The latest version is found on MS KB #907306.
Useful resources:
http://www.greenbytes.de/tech/webdav/webdav-redirector-list.html
http://www.greenbytes.de/tech/webdav/webfolder-client-list.html
http://svnbook.red-bean.com/en/1.4/svn.webdav.clients.html
http://support.microsoft.com/kb/907306
http://support.microsoft.com/kb/841215
how to force IE to ask for password?
vytis ·
i set up webdav on server.
on IE i get list of sitaccesses, but if i click on any - i get error.
use dav:// to access from Nautilus in Gnome
vytis ·
use dav:// to access from Nautilus in Gnome
configuration files
gaetano ·
Take care that [DatabaseSettings] and [FileSettings]/VarDir settings need to be set in the override site.ini file for webdav to work, as those settings are used by the server before checking for the siteaccess to use
Using global overrides for environment specific settings
Seth Gottlieb ·
It seems like the global settings would be useful for environment-specific settings. For example, if you have three server environments (dev, qa, and production), you would put things like database server in the global file that you would not check into source control and manage directly on each environment. Does this seem like a good approach?