# DAViCal Calendar Server

Alias /davical /usr/share/davical/htdocs

<Directory /usr/share/davical/htdocs>
  DirectoryIndex index.php
  AllowOverride None
  # for Apache from 2.4 use
  Require all granted
  # for Apache before 2.4 use
  #Order allow,deny
  #Allow from all

  # These are usually not necessary (set correctly by default)
  #AcceptPathInfo On
  #php_value include_path /usr/share/php/awl/inc
  #php_value magic_quotes_gpc 0
  #php_value register_globals 0
  #php_value error_reporting "E_ALL & ~E_NOTICE"
  #php_value default_charset "utf-8"

  # Some people want this. YMMV.
  #php_admin_value open_basedir /usr/share/awl/inc/:/usr/share/davical/:/etc/davical/

  # All content for our UI should be served locally.
  <FilesMatch "(admin|help|iSchedule|index|metrics|public|setup|tools|upgrade).php">
    Header set Content-Security-Policy "default-src 'none'; img-src 'self' data:; media-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline' data:; font-src 'self' data:; object-src 'self'; base-uri 'self'; connect-src 'self'; form-action 'self'; frame-ancestors 'self'"
  </FilesMatch>
</Directory>

<IfModule mod_rewrite.c>
  RewriteEngine On

  # PT is important if you are using an alias, it implies L
  # Redirect /.well-known URLs
  RewriteRule ^/\.well-known/(.*)$ /davical/caldav.php/.well-known/$1 [NC,PT]
  # Optionally: redirect /principals/users/ as well
  RewriteRule ^/principals/users/(.*)$ /davical/caldav.php/$1 [NC,PT]
  RewriteRule ^/principals/resources/(.*)$ /davical/caldav.php/$1 [NC,PT]
  RewriteRule ^/calendars/__uids__/(.*)$ /davical/caldav.php/$1 [NC,PT]
  RewriteRule ^/addressbooks/__uids__/(.*)$ /davical/caldav.php/$1 [NC,PT]

  # Optionally: Put DAViCal in the root
  # NOTE: this will break other applications that rely on mod_rewrite!
  #
  # Not if it's the root URL.  You might want to comment this out if you
  # want to use an explicit /index.php for getting to the admin pages.
  #RewriteCond %{REQUEST_URI} !^/$
  #RewriteCond %{REQUEST_URI} !^/davical/$
  #
  # Not if it explicitly specifies a .php program, html page, stylesheet or image
  #RewriteCond %{REQUEST_URI} !\.(php|html|css|js|png|gif|jpg|ico)
  #
  # Everything else gets rewritten to /caldav.php/...
  #RewriteRule ^(.*)$ /davical/caldav.php$1  [NC,L]
</IfModule>
