Well-known URLs

From Davical
Revision as of 17:42, 2 June 2021 by Narcisgarcia (talk | contribs) (→‎Apache)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

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).