Well-known URLs

From Davical
Jump to navigationJump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Template:Languages

Apache

To activate well-known URLs, you have to edit the apache config. To use the following snippets, you have to activate mod_rewrite.

Possibility A: redirect only collections

#Activate RewriteEngine
RewriteEngine On
# Filter paths with no known file extension
RewriteCond %{REQUEST_URI} !\.css
RewriteCond %{REQUEST_URI} !\.gif
RewriteCond %{REQUEST_URI} !\.jpg
RewriteCond %{REQUEST_URI} !\.png
RewriteCond %{REQUEST_URI} !\.js
RewriteCond %{REQUEST_URI} !\.php
RewriteCond %{REQUEST_URI} !\.html
RewriteCond %{REQUEST_URI} !\.txt
RewriteCond %{REQUEST_URI} ^/..*/
# and redirect them to our caldav.php
RewriteRule ^(.*)$ /caldav.php/$1 [NC,L]

Possibility B: redirect everything

#Activate RewriteEngine
RewriteEngine On
# Filter all files that do not exist
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# and redirect them to our caldav.php
RewriteRule ^(.*)$ /caldav.php/$1 [NC,L]


Under Apache 2.3 and if you put that in your site configuration (same as httpd.conf) you should rather use that :

#Activate RewriteEngine
RewriteEngine On
# Filter all files that do not exist
RewriteCond %{LA-U:REQUEST_FILENAME} !-f
RewriteCond %{LA-U:REQUEST_FILENAME} !-d
# and redirect them to our caldav.php
RewriteRule ^(.*)$ /caldav.php/$1 [NC,L]


This configuration does not work together with other programs using mod_rewrite. As a side effect,

Possibility C: redirect .well-known only

#Activate RewriteEngine
RewriteEngine On
# Redirect /.well-known URLs
RewriteRule ^/\.well-known/(.*)$ /caldav.php/.well-known/$1 [NC,L]
# Optionally: redirect /principals/users/ as well
RewriteRule ^/principals/users/(.*)$ /caldav.php/$1 [NC,L]

This configuration does not include the forwards to calendars (/username/calendarname instead of /caldav.php/username/calendarname).