diff options
Diffstat (limited to 'vendor/sabre/dav/examples')
22 files changed, 618 insertions, 0 deletions
diff --git a/vendor/sabre/dav/examples/addressbookserver.php b/vendor/sabre/dav/examples/addressbookserver.php new file mode 100644 index 000000000..b8986bc41 --- /dev/null +++ b/vendor/sabre/dav/examples/addressbookserver.php @@ -0,0 +1,56 @@ +<?php + +/* + +Addressbook/CardDAV server example + +This server features CardDAV support + +*/ + +// settings +date_default_timezone_set('Canada/Eastern'); + +// Make sure this setting is turned on and reflect the root url for your WebDAV server. +// This can be for example the root / or a complete path to your server script +$baseUri = '/'; + +/* Database */ +$pdo = new PDO('sqlite:data/db.sqlite'); +$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); + +//Mapping PHP errors to exceptions +function exception_error_handler($errno, $errstr, $errfile, $errline ) { + throw new ErrorException($errstr, 0, $errno, $errfile, $errline); +} +set_error_handler("exception_error_handler"); + +// Autoloader +require_once 'vendor/autoload.php'; + +// Backends +$authBackend = new Sabre\DAV\Auth\Backend\PDO($pdo); +$principalBackend = new Sabre\DAVACL\PrincipalBackend\PDO($pdo); +$carddavBackend = new Sabre\CardDAV\Backend\PDO($pdo); +//$caldavBackend = new Sabre\CalDAV\Backend\PDO($pdo); + +// Setting up the directory tree // +$nodes = array( + new Sabre\DAVACL\PrincipalCollection($principalBackend), +// new Sabre\CalDAV\CalendarRootNode($authBackend, $caldavBackend), + new Sabre\CardDAV\AddressBookRoot($principalBackend, $carddavBackend), +); + +// The object tree needs in turn to be passed to the server class +$server = new Sabre\DAV\Server($nodes); +$server->setBaseUri($baseUri); + +// Plugins +$server->addPlugin(new Sabre\DAV\Auth\Plugin($authBackend,'SabreDAV')); +$server->addPlugin(new Sabre\DAV\Browser\Plugin()); +//$server->addPlugin(new Sabre\CalDAV\Plugin()); +$server->addPlugin(new Sabre\CardDAV\Plugin()); +$server->addPlugin(new Sabre\DAVACL\Plugin()); + +// And off we go! +$server->exec(); diff --git a/vendor/sabre/dav/examples/basicauth.php b/vendor/sabre/dav/examples/basicauth.php new file mode 100644 index 000000000..743c07ce2 --- /dev/null +++ b/vendor/sabre/dav/examples/basicauth.php @@ -0,0 +1,26 @@ +<?php + +// !!!! Make sure the Sabre directory is in the include_path !!! +// example: +// set_include_path('lib/' . PATH_SEPARATOR . get_include_path()); + +// settings +date_default_timezone_set('Canada/Eastern'); + +// Files we need +require_once 'vendor/autoload.php'; + +$u = 'admin'; +$p = '1234'; + +$auth = new \Sabre\HTTP\BasicAuth(); + +$result = $auth->getUserPass(); + +if (!$result || $result[0]!=$u || $result[1]!=$p) { + + $auth->requireLogin(); + echo "Authentication required\n"; + die(); + +} diff --git a/vendor/sabre/dav/examples/digestauth.php b/vendor/sabre/dav/examples/digestauth.php new file mode 100644 index 000000000..1f4a74b44 --- /dev/null +++ b/vendor/sabre/dav/examples/digestauth.php @@ -0,0 +1,25 @@ +<?php + +// !!!! Make sure the Sabre directory is in the include_path !!! +// example: +// set_include_path('lib/' . PATH_SEPARATOR . get_include_path()); + +// settings +date_default_timezone_set('Canada/Eastern'); + +// Files we need +require_once 'vendor/autoload.php'; + +$u = 'admin'; +$p = '1234'; + +$auth = new \Sabre\HTTP\DigestAuth(); +$auth->init(); + +if ($auth->getUsername() != $u || !$auth->validatePassword($p)) { + + $auth->requireLogin(); + echo "Authentication required\n"; + die(); + +} diff --git a/vendor/sabre/dav/examples/simplefsserver.php b/vendor/sabre/dav/examples/simplefsserver.php new file mode 100644 index 000000000..f1b4a1100 --- /dev/null +++ b/vendor/sabre/dav/examples/simplefsserver.php @@ -0,0 +1,123 @@ +<?php + +// !!!! Make sure the Sabre directory is in the include_path !!! +// example: +// set_include_path('lib/' . PATH_SEPARATOR . get_include_path()); + +/* + +This example demonstrates a simple way to create your own virtual filesystems. +By extending the _File and Directory classes, you can easily create a tree +based on various datasources. + +The most obvious example is the filesystem itself. A more complete and documented +example can be found in: + +lib/Sabre/DAV/FS/Node.php +lib/Sabre/DAV/FS/Directory.php +lib/Sabre/DAV/FS/File.php + +*/ + +// settings +date_default_timezone_set('Canada/Eastern'); +$publicDir = 'public'; + +// Files we need +require_once 'vendor/autoload.php'; + +class MyCollection extends Sabre\DAV\Collection { + + private $myPath; + + function __construct($myPath) { + + $this->myPath = $myPath; + + } + + function getChildren() { + + $children = array(); + // Loop through the directory, and create objects for each node + foreach(scandir($this->myPath) as $node) { + + // Ignoring files staring with . + if ($node[0]==='.') continue; + + $children[] = $this->getChild($node); + + } + + return $children; + + } + + function getChild($name) { + + $path = $this->myPath . '/' . $name; + + // We have to throw a NotFound exception if the file didn't exist + if (!file\exists($this->myPath)) throw new \Sabre\DAV\Exception\NotFound('The file with name: ' . $name . ' could not be found'); + // Some added security + + if ($name[0]=='.') throw new \Sabre\DAV\Exception\Forbidden('Access denied'); + + if (is_dir($path)) { + + return new \MyCollection($name); + + } else { + + return new \MyFile($path); + + } + + } + + function getName() { + + return basename($this->myPath); + + } + +} + +class MyFile extends \Sabre\DAV\File { + + private $myPath; + + function __construct($myPath) { + + $this->myPath = $myPath; + + } + + function getName() { + + return basename($this->myPath); + + } + + function get() { + + return fopen($this->myPath,'r'); + + } + + function getSize() { + + return filesize($this->myPath); + + } + +} + +// Make sure there is a directory in your current directory named 'public'. We will be exposing that directory to WebDAV +$rootNode = new \MyCollection($publicDir); + +// The rootNode needs to be passed to the server object. +$server = new \Sabre\DAV\Server($rootNode); + +// And off we go! +$server->exec(); diff --git a/vendor/sabre/dav/examples/sql/mysql.addressbook.sql b/vendor/sabre/dav/examples/sql/mysql.addressbook.sql new file mode 100644 index 000000000..f603ad4c5 --- /dev/null +++ b/vendor/sabre/dav/examples/sql/mysql.addressbook.sql @@ -0,0 +1,18 @@ +CREATE TABLE addressbooks ( + id INT(11) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, + principaluri VARCHAR(255), + displayname VARCHAR(255), + uri VARCHAR(200), + description TEXT, + ctag INT(11) UNSIGNED NOT NULL DEFAULT '1', + UNIQUE(principaluri, uri) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +CREATE TABLE cards ( + id INT(11) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, + addressbookid INT(11) UNSIGNED NOT NULL, + carddata MEDIUMBLOB, + uri VARCHAR(200), + lastmodified INT(11) UNSIGNED +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + diff --git a/vendor/sabre/dav/examples/sql/mysql.calendars.sql b/vendor/sabre/dav/examples/sql/mysql.calendars.sql new file mode 100644 index 000000000..a8eb102d1 --- /dev/null +++ b/vendor/sabre/dav/examples/sql/mysql.calendars.sql @@ -0,0 +1,28 @@ +CREATE TABLE calendarobjects ( + id INTEGER UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, + calendardata MEDIUMBLOB, + uri VARCHAR(200), + calendarid INTEGER UNSIGNED NOT NULL, + lastmodified INT(11) UNSIGNED, + etag VARCHAR(32), + size INT(11) UNSIGNED NOT NULL, + componenttype VARCHAR(8), + firstoccurence INT(11) UNSIGNED, + lastoccurence INT(11) UNSIGNED, + UNIQUE(calendarid, uri) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +CREATE TABLE calendars ( + id INTEGER UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, + principaluri VARCHAR(100), + displayname VARCHAR(100), + uri VARCHAR(200), + ctag INTEGER UNSIGNED NOT NULL DEFAULT '0', + description TEXT, + calendarorder INTEGER UNSIGNED NOT NULL DEFAULT '0', + calendarcolor VARCHAR(10), + timezone TEXT, + components VARCHAR(20), + transparent TINYINT(1) NOT NULL DEFAULT '0', + UNIQUE(principaluri, uri) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; diff --git a/vendor/sabre/dav/examples/sql/mysql.locks.sql b/vendor/sabre/dav/examples/sql/mysql.locks.sql new file mode 100644 index 000000000..cf3caf4f7 --- /dev/null +++ b/vendor/sabre/dav/examples/sql/mysql.locks.sql @@ -0,0 +1,13 @@ +CREATE TABLE locks ( + id INTEGER UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, + owner VARCHAR(100), + timeout INTEGER UNSIGNED, + created INTEGER, + token VARCHAR(100), + scope TINYINT, + depth TINYINT, + uri VARCHAR(1000), + INDEX(token), + INDEX(uri) +); + diff --git a/vendor/sabre/dav/examples/sql/mysql.principals.sql b/vendor/sabre/dav/examples/sql/mysql.principals.sql new file mode 100644 index 000000000..da9282818 --- /dev/null +++ b/vendor/sabre/dav/examples/sql/mysql.principals.sql @@ -0,0 +1,22 @@ +CREATE TABLE principals ( + id INTEGER UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, + uri VARCHAR(200) NOT NULL, + email VARCHAR(80), + displayname VARCHAR(80), + vcardurl VARCHAR(255), + UNIQUE(uri) +); + +CREATE TABLE groupmembers ( + id INTEGER UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, + principal_id INTEGER UNSIGNED NOT NULL, + member_id INTEGER UNSIGNED NOT NULL, + UNIQUE(principal_id, member_id) +); + + +INSERT INTO principals (uri,email,displayname) VALUES +('principals/admin', 'admin@example.org','Administrator'), +('principals/admin/calendar-proxy-read', null, null), +('principals/admin/calendar-proxy-write', null, null); + diff --git a/vendor/sabre/dav/examples/sql/mysql.users.sql b/vendor/sabre/dav/examples/sql/mysql.users.sql new file mode 100644 index 000000000..1244f596f --- /dev/null +++ b/vendor/sabre/dav/examples/sql/mysql.users.sql @@ -0,0 +1,9 @@ +CREATE TABLE users ( + id INTEGER UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, + username VARCHAR(50), + digesta1 VARCHAR(32), + UNIQUE(username) +); + +INSERT INTO users (username,digesta1) VALUES +('admin', '87fd274b7b6c01e48d7c2f965da8ddf7'); diff --git a/vendor/sabre/dav/examples/sql/pgsql.addressbook.sql b/vendor/sabre/dav/examples/sql/pgsql.addressbook.sql new file mode 100644 index 000000000..c3ca8b291 --- /dev/null +++ b/vendor/sabre/dav/examples/sql/pgsql.addressbook.sql @@ -0,0 +1,33 @@ +CREATE TABLE addressbooks ( + id SERIAL NOT NULL, + principaluri VARCHAR(255), + displayname VARCHAR(255), + uri VARCHAR(200), + description TEXT, + ctag INTEGER NOT NULL DEFAULT 1 +); + +ALTER TABLE ONLY addressbooks + ADD CONSTRAINT addressbooks_pkey PRIMARY KEY (id); + +CREATE UNIQUE INDEX addressbooks_ukey + ON addressbooks USING btree (principaluri, uri); + +CREATE TABLE cards ( + id SERIAL NOT NULL, + addressbookid INTEGER NOT NULL, + carddata TEXT, + uri VARCHAR(200), + lastmodified INTEGER +); + +ALTER TABLE ONLY cards + ADD CONSTRAINT cards_pkey PRIMARY KEY (id); + +CREATE UNIQUE INDEX cards_ukey + ON cards USING btree (addressbookid, uri); + +ALTER TABLE ONLY cards + ADD CONSTRAINT cards_addressbookid_fkey FOREIGN KEY (addressbookid) REFERENCES addressbooks(id) + ON DELETE CASCADE; + diff --git a/vendor/sabre/dav/examples/sql/pgsql.calendars.sql b/vendor/sabre/dav/examples/sql/pgsql.calendars.sql new file mode 100644 index 000000000..23465ae93 --- /dev/null +++ b/vendor/sabre/dav/examples/sql/pgsql.calendars.sql @@ -0,0 +1,42 @@ +CREATE TABLE calendars ( + id SERIAL NOT NULL, + principaluri VARCHAR(100), + displayname VARCHAR(100), + uri VARCHAR(200), + ctag INTEGER NOT NULL DEFAULT 0, + description TEXT, + calendarorder INTEGER NOT NULL DEFAULT 0, + calendarcolor VARCHAR(10), + timezone TEXT, + components VARCHAR(20), + transparent SMALLINT NOT NULL DEFAULT '0' +); + +ALTER TABLE ONLY calendars + ADD CONSTRAINT calendars_pkey PRIMARY KEY (id); + +CREATE UNIQUE INDEX calendars_ukey + ON calendars USING btree (principaluri, uri); + +CREATE TABLE calendarobjects ( + id SERIAL NOT NULL, + calendarid INTEGER NOT NULL, + calendardata TEXT, + uri VARCHAR(200), + etag VARCHAR(32), + size INTEGER NOT NULL, + componenttype VARCHAR(8), + lastmodified INTEGER, + firstoccurence INTEGER, + lastoccurence INTEGER +); + +ALTER TABLE ONLY calendarobjects + ADD CONSTRAINT calendarobjects_pkey PRIMARY KEY (id); + +CREATE UNIQUE INDEX calendarobjects_ukey + ON calendarobjects USING btree (calendarid, uri); + +ALTER TABLE ONLY calendarobjects + ADD CONSTRAINT calendarobjects_calendarid_fkey FOREIGN KEY (calendarid) REFERENCES calendars(id) + ON DELETE CASCADE; diff --git a/vendor/sabre/dav/examples/sql/pgsql.locks.sql b/vendor/sabre/dav/examples/sql/pgsql.locks.sql new file mode 100644 index 000000000..ca6c82e96 --- /dev/null +++ b/vendor/sabre/dav/examples/sql/pgsql.locks.sql @@ -0,0 +1,13 @@ +CREATE TABLE locks ( + id SERIAL NOT NULL, + owner VARCHAR(100), + timeout INTEGER, + created INTEGER, + token VARCHAR(100), + scope smallint, + depth smallint, + uri text +); + +ALTER TABLE ONLY locks + ADD CONSTRAINT locks_pkey PRIMARY KEY (id); diff --git a/vendor/sabre/dav/examples/sql/pgsql.principals.sql b/vendor/sabre/dav/examples/sql/pgsql.principals.sql new file mode 100644 index 000000000..4afe51063 --- /dev/null +++ b/vendor/sabre/dav/examples/sql/pgsql.principals.sql @@ -0,0 +1,40 @@ +CREATE TABLE principals ( + id SERIAL NOT NULL, + uri VARCHAR(100) NOT NULL, + email VARCHAR(80), + displayname VARCHAR(80), + vcardurl VARCHAR(255) +); + +ALTER TABLE ONLY principals + ADD CONSTRAINT principals_pkey PRIMARY KEY (id); + +CREATE UNIQUE INDEX principals_ukey + ON principals USING btree (uri); + +CREATE TABLE groupmembers ( + id SERIAL NOT NULL, + principal_id INTEGER NOT NULL, + member_id INTEGER NOT NULL +); + +ALTER TABLE ONLY groupmembers + ADD CONSTRAINT groupmembers_pkey PRIMARY KEY (id); + +CREATE UNIQUE INDEX groupmembers_ukey + ON groupmembers USING btree (principal_id, member_id); + +ALTER TABLE ONLY groupmembers + ADD CONSTRAINT groupmembers_principal_id_fkey FOREIGN KEY (principal_id) REFERENCES principals(id) + ON DELETE CASCADE; + +-- Is this correct correct link ... or not? +-- ALTER TABLE ONLY groupmembers +-- ADD CONSTRAINT groupmembers_member_id_id_fkey FOREIGN KEY (member_id) REFERENCES users(id) +-- ON DELETE CASCADE; + +INSERT INTO principals (uri,email,displayname) VALUES +('principals/admin', 'admin@example.org','Administrator'), +('principals/admin/calendar-proxy-read', null, null), +('principals/admin/calendar-proxy-write', null, null); + diff --git a/vendor/sabre/dav/examples/sql/pgsql.users.sql b/vendor/sabre/dav/examples/sql/pgsql.users.sql new file mode 100644 index 000000000..939c931d8 --- /dev/null +++ b/vendor/sabre/dav/examples/sql/pgsql.users.sql @@ -0,0 +1,15 @@ +CREATE TABLE users ( + id SERIAL NOT NULL, + username VARCHAR(50), + digesta1 VARCHAR(32), + UNIQUE(username) +); + +ALTER TABLE ONLY users + ADD CONSTRAINT users_pkey PRIMARY KEY (id); + +CREATE UNIQUE INDEX users_ukey + ON users USING btree (username); + +INSERT INTO users (username,digesta1) VALUES +('admin', '87fd274b7b6c01e48d7c2f965da8ddf7'); diff --git a/vendor/sabre/dav/examples/sql/sqlite.addressbooks.sql b/vendor/sabre/dav/examples/sql/sqlite.addressbooks.sql new file mode 100644 index 000000000..aa7639c5f --- /dev/null +++ b/vendor/sabre/dav/examples/sql/sqlite.addressbooks.sql @@ -0,0 +1,17 @@ +CREATE TABLE addressbooks ( + id integer primary key asc, + principaluri text, + displayname text, + uri text, + description text, + ctag integer +); + +CREATE TABLE cards ( + id integer primary key asc, + addressbookid integer, + carddata blob, + uri text, + lastmodified integer +); + diff --git a/vendor/sabre/dav/examples/sql/sqlite.calendars.sql b/vendor/sabre/dav/examples/sql/sqlite.calendars.sql new file mode 100644 index 000000000..537789906 --- /dev/null +++ b/vendor/sabre/dav/examples/sql/sqlite.calendars.sql @@ -0,0 +1,26 @@ +CREATE TABLE calendarobjects ( + id integer primary key asc, + calendardata blob, + uri text, + calendarid integer, + lastmodified integer, + etag text, + size integer, + componenttype text, + firstoccurence integer, + lastoccurence integer +); + +CREATE TABLE calendars ( + id integer primary key asc, + principaluri text, + displayname text, + uri text, + ctag integer, + description text, + calendarorder integer, + calendarcolor text, + timezone text, + components text, + transparent bool +); diff --git a/vendor/sabre/dav/examples/sql/sqlite.locks.sql b/vendor/sabre/dav/examples/sql/sqlite.locks.sql new file mode 100644 index 000000000..fd89b41eb --- /dev/null +++ b/vendor/sabre/dav/examples/sql/sqlite.locks.sql @@ -0,0 +1,12 @@ +BEGIN TRANSACTION; +CREATE TABLE locks ( + id integer primary key asc, + owner text, + timeout integer, + created integer, + token text, + scope integer, + depth integer, + uri text +); +COMMIT; diff --git a/vendor/sabre/dav/examples/sql/sqlite.principals.sql b/vendor/sabre/dav/examples/sql/sqlite.principals.sql new file mode 100644 index 000000000..09dbc4d24 --- /dev/null +++ b/vendor/sabre/dav/examples/sql/sqlite.principals.sql @@ -0,0 +1,21 @@ +CREATE TABLE principals ( + id INTEGER PRIMARY KEY ASC, + uri TEXT, + email TEXT, + displayname TEXT, + vcardurl TEXT, + UNIQUE(uri) +); + +CREATE TABLE groupmembers ( + id INTEGER PRIMARY KEY ASC, + principal_id INTEGER, + member_id INTEGER, + UNIQUE(principal_id, member_id) +); + + +INSERT INTO principals (uri,email,displayname) VALUES ('principals/admin', 'admin@example.org','Administrator'); +INSERT INTO principals (uri,email,displayname) VALUES ('principals/admin/calendar-proxy-read', null, null); +INSERT INTO principals (uri,email,displayname) VALUES ('principals/admin/calendar-proxy-write', null, null); + diff --git a/vendor/sabre/dav/examples/sql/sqlite.users.sql b/vendor/sabre/dav/examples/sql/sqlite.users.sql new file mode 100644 index 000000000..f4b2c1674 --- /dev/null +++ b/vendor/sabre/dav/examples/sql/sqlite.users.sql @@ -0,0 +1,9 @@ +CREATE TABLE users ( + id integer primary key asc, + username TEXT, + digesta1 TEXT, + UNIQUE(username) +); + +INSERT INTO users (username,digesta1) VALUES +('admin', '87fd274b7b6c01e48d7c2f965da8ddf7'); diff --git a/vendor/sabre/dav/examples/webserver/apache2_htaccess.conf b/vendor/sabre/dav/examples/webserver/apache2_htaccess.conf new file mode 100644 index 000000000..c5f29ba80 --- /dev/null +++ b/vendor/sabre/dav/examples/webserver/apache2_htaccess.conf @@ -0,0 +1,16 @@ +RewriteEngine On +# This makes every request go to server.php +RewriteRule (.*) server.php [L] + +# Output buffering needs to be off, to prevent high memory usage +php_flag output_buffering off + +# This is also to prevent high memory usage +php_flag always_populate_raw_post_data off + +# This is almost a given, but magic quotes is *still* on on some +# linux distributions +php_flag magic_quotes_gpc off + +# SabreDAV is not compatible with mbstring function overloading +php_flag mbstring.func_overload off diff --git a/vendor/sabre/dav/examples/webserver/apache2_vhost.conf b/vendor/sabre/dav/examples/webserver/apache2_vhost.conf new file mode 100644 index 000000000..bb374eb0f --- /dev/null +++ b/vendor/sabre/dav/examples/webserver/apache2_vhost.conf @@ -0,0 +1,33 @@ +# This is a sample configuration to setup a dedicated Apache vhost for WebDAV. +# +# The main thing that should be configured is the servername, and the path to +# your SabreDAV installation (DocumentRoot). +# +# This configuration assumed mod_php5 is used, as it sets a few default php +# settings as well. +<VirtualHost *:*> + + # Don't forget to change the server name + # ServerName dav.example.org + + # The DocumentRoot is also required + # DocumentRoot /home/sabredav/ + + RewriteEngine On + # This makes every request go to server.php + RewriteRule ^/(.*)$ /server.php [L] + + # Output buffering needs to be off, to prevent high memory usage + php_flag output_buffering off + + # This is also to prevent high memory usage + php_flag always_populate_raw_post_data off + + # This is almost a given, but magic quotes is *still* on on some + # linux distributions + php_flag magic_quotes_gpc off + + # SabreDAV is not compatible with mbstring function overloading + php_flag mbstring.func_overload off + +</VirtualHost *:*> diff --git a/vendor/sabre/dav/examples/webserver/apache2_vhost_cgi.conf b/vendor/sabre/dav/examples/webserver/apache2_vhost_cgi.conf new file mode 100644 index 000000000..607254c6e --- /dev/null +++ b/vendor/sabre/dav/examples/webserver/apache2_vhost_cgi.conf @@ -0,0 +1,21 @@ +# This is a sample configuration to setup a dedicated Apache vhost for WebDAV. +# +# The main thing that should be configured is the servername, and the path to +# your SabreDAV installation (DocumentRoot). +# +# This configuration assumes CGI or FastCGI is used. +<VirtualHost *:*> + + # Don't forget to change the server name + # ServerName dav.example.org + + # The DocumentRoot is also required + # DocumentRoot /home/sabredav/ + + # This makes every request go to server.php. This also makes sure + # the Authentication information is available. If your server script is + # not called server.php, be sure to change it. + RewriteEngine On + RewriteRule ^/(.*)$ /server.php [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] + +</VirtualHost *:*> |