In den Kommentaren zum Artikel Installation von Tine 2.0 – 1.überarbeitete Fassung kamen Fragen bzw. Probleme auf bezunehmend auf die URL-Weiterleitungsregeln für WebDAV, CalDAV und CardDAV.
Die *DAV-Weiterleitungen werden benötigt, wenn man Thunderbird oder andere nicht ActiveSync-Software oder -Geräte, mit Tine 2.0 synchronisieren möchte.
Nachfolgend geht es um die Verwendung von htaccess-Dateien in Verbindung mit dem Apache Webserver. Als Vorlage für die Regeln dienten die Wiki-Artikel Synchronisation / ActiveSync und Synchronisation / Thunderbird. Diese Informationen kann man nicht nur auf dem eigenen Webserver anwenden, sondern auch bei Webhostern.
Ganz wichtig zu wissen ist im Vorfeld, wo sich die Tine 2.0-Installation befindet. Damit ist gemeint, ob es sich im Wurzelverzeichnis des Webserver, z.B. “/var/www” befindet oder in einem Unterverzeichnis, wie z.B. “/var/www/tine20”, denn hiervon ist die Anzahl und die Konfiguration der htaccess-Dateien abhängig.
Damit die Weiterleitungsregeln funktionieren muss der Apache Webserver wie folgt konfiguriert sein:
AllowOverride All # Order deny,allow # Deny from all
LoadModule rewrite_module modules/mod_rewrite.so
Konfigurations-Beispiele für htaccess-Dateien
Tine 2.0 befindet sich im Unterverzeichnis “/tine20/”. Variante mit einer htaccess-Datei.
Inhalt der htaccess-Datei im Wurzelverzeichnis:
RewriteEngine on RewriteRule Microsoft-Server-ActiveSync(.*) /tine20/index.php$1 [E=ACTIVESYNC:true,E=REMOTE_USER:%{HTTP:Authorization}] RewriteCond %{REQUEST_METHOD} !^(GET|POST)$ RewriteRule ^$ /tine20/index.php?frontend=webdav [E=REMOTE_USER:%{HTTP:Authorization},L,QSA] RewriteRule ^addressbooks /tine20/index.php?frontend=webdav [E=REMOTE_USER:%{HTTP:Authorization},L,QSA] RewriteRule ^calendars /tine20/index.php?frontend=webdav [E=REMOTE_USER:%{HTTP:Authorization},L,QSA] RewriteRule ^principals /tine20/index.php?frontend=webdav [E=REMOTE_USER:%{HTTP:Authorization},L,QSA] RewriteRule ^webdav /tine20/index.php?frontend=webdav [E=REMOTE_USER:%{HTTP:Authorization},L,QSA]
Tine 2.0 befindet sich im Unterverzeichnis “/tine20/”. Variante mit zwei htaccess-Dateien.
Inhalt der htaccess-Datei im Wurzelverzeichnis:
RewriteEngine on RewriteRule Microsoft-Server-ActiveSync(.*) /tine20/index.php$1 [E=ACTIVESYNC:true,E=REMOTE_USER:%{HTTP:Authorization}]
Inhalt der htaccess-Datei im Tine 2.0-Verzeichnis:
RewriteEngine on RewriteCond %{REQUEST_METHOD} !^(GET|POST)$ RewriteRule ^$ index.php?frontend=webdav [E=REMOTE_USER:%{HTTP:Authorization},L,QSA] RewriteRule ^addressbooks index.php?frontend=webdav [E=REMOTE_USER:%{HTTP:Authorization},L,QSA] RewriteRule ^calendars index.php?frontend=webdav [E=REMOTE_USER:%{HTTP:Authorization},L,QSA] RewriteRule ^principals index.php?frontend=webdav [E=REMOTE_USER:%{HTTP:Authorization},L,QSA] RewriteRule ^webdav index.php?frontend=webdav [E=REMOTE_USER:%{HTTP:Authorization},L,QSA]
Tine 2.0 befindet sich im Wurzelverzeichnis des Webservers.
Inhalt der htaccess-Datei im Wurzelverzeichnis:
RewriteEngine on RewriteRule Microsoft-Server-ActiveSync(.*) index.php$1 [E=ACTIVESYNC:true,E=REMOTE_USER:%{HTTP:Authorization}] RewriteCond %{REQUEST_METHOD} !^(GET|POST)$ RewriteRule ^/$ /index.php?frontend=webdav [E=REMOTE_USER:%{HTTP:Authorization},L,QSA] RewriteRule ^/addressbooks index.php?frontend=webdav [E=REMOTE_USER:%{HTTP:Authorization},L,QSA] RewriteRule ^/calendars index.php?frontend=webdav [E=REMOTE_USER:%{HTTP:Authorization},L,QSA] RewriteRule ^/principals index.php?frontend=webdav [E=REMOTE_USER:%{HTTP:Authorization},L,QSA] RewriteRule ^/webdav index.php?frontend=webdav [E=REMOTE_USER:%{HTTP:Authorization},L,QSA]
Wie man sieht sind die Unterschiede nur sehr gering, aber zeigen schon große Wirkung.
Update 08.01.2016
Eine Beispiel-htaccess-Datei (ohne vorangestellten Punkt) findet man nach der Tine 2.0-Installation via Zip-Archiv im Verzeichnis “docs”:
DirectoryIndex index.php php_value max_input_time 120 php_value session.gc_maxlifetime 86400 php_value memory_limit 128M php_value upload_max_filesize 20M php_value post_max_size 20M php_value safe_mode off php_flag display_errors off php_flag log_errors on php_flag magic_quotes_gpc off php_flag magic_quotes_runtime off php_flag register_globals off php_value max_execution_time 90 RewriteEngine on # ActiveSync RewriteRule ^Microsoft-Server-ActiveSync index.php?frontend=activesync [E=REMOTE_USER:%{HTTP:Authorization},L,QSA] # OpenID RewriteRule ^users/(.*) index.php?frontend=openid&username=$1 [L,QSA] # WebDAV / CalDAV / CardDAV RewriteCond %{REQUEST_METHOD} !^(GET|POST)$ RewriteRule ^$ index.php?frontend=webdav [E=REMOTE_USER:%{HTTP:Authorization},L,QSA] RewriteRule ^addressbooks index.php?frontend=webdav [E=REMOTE_USER:%{HTTP:Authorization},L,QSA] RewriteRule ^calendars index.php?frontend=webdav [E=REMOTE_USER:%{HTTP:Authorization},L,QSA] RewriteRule ^webdav index.php?frontend=webdav [E=REMOTE_USER:%{HTTP:Authorization},L,QSA] RewriteRule ^principals index.php?frontend=webdav [E=REMOTE_USER:%{HTTP:Authorization},L,QSA] RewriteRule ^remote.php index.php?frontend=webdav [E=REMOTE_USER:%{HTTP:Authorization},L,QSA] # Anonymous downloads RewriteRule ^download/get/(.*) index.php?method=Download.downloadNode&path=$1 [E=REMOTE_USER:%{HTTP:Authorization},L,QSA] RewriteRule ^download/show/(.*) index.php?method=Download.displayNode&path=$1 [E=REMOTE_USER:%{HTTP:Authorization},L,QSA] ExpiresActive on ExpiresByType image/gif "access plus 1 month 1 days" ExpiresByType image/jpeg "access plus 1 month 1 days" ExpiresByType image/png "access plus 1 month 1 days"
Bisher in diesem Beitrag bzw. Blog nicht genannt wurden die für den anonymen Download notwendigen Regeln nach Freigabe im Filemanager:
# Anonymous downloads RewriteRule ^download/get/(.*) index.php?method=Download.downloadNode&path=$1 [E=REMOTE_USER:%{HTTP:Authorization},L,QSA] RewriteRule ^download/show/(.*) index.php?method=Download.displayNode&path=$1 [E=REMOTE_USER:%{HTTP:Authorization},L,QSA]
Ich muss zugeben, ich habe diese erst im Forum gefunden, bevor ich dran gedacht habe im Beispiel nachzusehen:
Tine 2.0 Forum – Filemanager Publish Configuration Requirements
Hinweis: Der anonyme Download funktioniert nur via Browser, nicht via WebDAV(-Client).
Ebenfalls interessant ist die Möglichkeit, via ownCloud-Client einen Abgleich einzurichten:
RewriteRule ^remote.php index.php?frontend=webdav [E=REMOTE_USER:%{HTTP:Authorization},L,QSA]
Diese Zeile findet sich sowohl im Beispiel als auch im Wiki:
Tine 2.0 Wiki – Synchronisation with Owncloud clients
Verheiratet, Vater von zwei Kindern, eines an der Hand, eines im Herzen. Schon immer Technik-Freund, seit 2001 in der IT tätig und seit über 10 Jahren begeisterter Blogger. Mit meiner Firma IT-Service Weber kümmern wir uns um alle IT-Belange von gewerblichen Kunden und unterstützen zusätzlich sowohl Partner als auch Kollegen.
HAMMER!
Danke, genau das, was ich gebraucht habe.
Hätt ich das vor 2 Tagen gefunden, wär ich schon vor 2 Tagen fertig gewesen.
DANKE!!
Vielen Dank für die ausführliche Anleitung.
Leider scheitere ich dennoch an der Einrichtung auf einem 1und1 Webhost.
Die Installation läuft sauber durch.
Versuche ich aber auf http://tine.domain.de/Microsoft-Server-ActiveSync oder CalDAV zuzugreifen erhalte ich immer Error 404: NOT FOUND!
Ich habe unter 1und1 eine Subdomain tine.domain.de eingerichtet. Diese verweist auf den Ordner “Domain/tine20/”
Ich habe mich auch an deinen anderen Varianten versucht, gehe aber davon aus das die letzte “Tine 2.0 befindet sich im Wurzelverzeichnis des Webservers” die passende ist, oder?
Daher liegt .htaccess und php.ini direkt unter “Domain/tine20/”.
Wie kann ich Deinen Hinweis überprüfen?
“AllowOverride All
# Order deny,allow
# Deny from all
LoadModule rewrite_module modules/mod_rewrite.so”
Beste Grüße
Jan
Sieht so aus, als ob da irgendwas noch nicht greift.
Tine ganz normal aufrufen geht aber? Ich meine damit Tine im Browser über die URL http(s)://subdomain.domain.tld aufrufen.
ActiveSync ist auch innerhalb von Tine installiert (Setup – Anwendungsverwaltung)? Wobei das für CalDAV usw. keine Rolle spielt.
Prinzipiell liest sich dein Kommentar gut für mich.
Ich muss allerdings dazu sagen, das ich es über Subdomain noch nie versucht habe.
Behaupten würde ich allerdings schon, dass das so gehen sollte.
Da man den Apachen bei 1&1 nicht direkt konfigurieren kann, fällt der Part mit “Load Module…” erstmal weg.
Das Modul ist per Standard geladen und wird mittels .htaccess gesteuert.
D.h. wie im Artikel beschrieben im Wurzelverzeichnis eine .htaccess mit folgendem Inhalt anlegen:
RewriteEngine on
RewriteRule Microsoft-Server-ActiveSync(.*) index.php$1 [E=ACTIVESYNC:true,E=REMOTE_USER:%{HTTP:Authorization}]
RewriteCond %{REQUEST_METHOD} !^(GET|POST)$
RewriteRule ^/$ /index.php?frontend=webdav [E=REMOTE_USER:%{HTTP:Authorization},L,QSA]
RewriteRule ^/addressbooks index.php?frontend=webdav [E=REMOTE_USER:%{HTTP:Authorization},L,QSA]
RewriteRule ^/calendars index.php?frontend=webdav [E=REMOTE_USER:%{HTTP:Authorization},L,QSA]
RewriteRule ^/principals index.php?frontend=webdav [E=REMOTE_USER:%{HTTP:Authorization},L,QSA]
RewriteRule ^/webdav index.php?frontend=webdav [E=REMOTE_USER:%{HTTP:Authorization},L,QSA]
Ich weiß nicht wie es mittlerweile bei 1&1 ist, aber früher musste man um PHP5 zu aktivieren noch
AddType x-mapp-php5 .php
AddHandler x-mapp-php5 .php
in die .htaccess-Datei reinpacken.
Evtl. darf/muss man noch was mit “RewriteBase /” machen.
Vielleicht findet du hier noch etwas brauchbares:
http://hilfe-center.1und1.de/homepage-entwickeln-c82634/htaccess-c83883/haeufig-verwendete-htaccess-direktiven-a784801.html
Danke für Deinen Hinweis.
Mittlerweile habe ich es auch schon für ActiveSync hinbekommen. Nur Webdav funktioniert noch immer nicht.
Hier mal meine derzeitigen Modifikationen für 1und1:
.htaccess:
AddType x-mapp-php6 .php
AddHandler x-mapp-php6 .php
RewriteEngine on
RewriteBase /
RewriteRule Microsoft-Server-ActiveSync(.*) index.php$1 [E=ACTIVESYNC:true,E=REMOTE_USER:%{HTTP:Authorization},L,QSA]
RewriteCond %{REQUEST_METHOD} !^(GET|POST)$
RewriteRule ^/$ /index.php?frontend=webdav [E=REMOTE_USER:%{HTTP:Authorization},L,QSA]
RewriteRule ^/addressbooks /index.php?frontend=webdav [E=REMOTE_USER:%{HTTP:Authorization},L,QSA]
RewriteRule ^/calendars /index.php?frontend=webdav [E=REMOTE_USER:%{HTTP:Authorization},L,QSA]
RewriteRule ^/principals /index.php?frontend=webdav [E=REMOTE_USER:%{HTTP:Authorization},L,QSA]
RewriteRule ^/webdav /index.php?frontend=webdav [E=REMOTE_USER:%{HTTP:Authorization},L,QSA]
Zusätzlich musste ich noch in */tine20/tinebase/core.php* folgende
Änderung machen (REDIRECT_ zugefügt):
_ZEILE 201:___
/**************************** ActiveSync API ****************************
* RewriteRule ^/Microsoft-Server-ActiveSync
/index.php?frontend=activesync [E=REMOTE_USER:%{HTTP:Authorization},L,QSA]
*/
} elseif((isset($_SERVER[‘REDIRECT_REDIRECT_ACTIVESYNC’]) &&
$_SERVER[‘REDIRECT_REDIRECT_ACTIVESYNC’] == ‘true’) ||
(isset($_GET[‘frontend’]) && $_GET[‘frontend’] ==
‘activesync’)) {
$server = new ActiveSync_Server_Http();
und unter */tine20/ActiveSync/Server/Http.php *ebenfalls REDIRECT_ zugefügt:
_
ZEILE 45:___
// when used with (f)cgi no PHP_AUTH* variables are available
without defining a special rewrite rule
if(!isset($_SERVER[‘PHP_AUTH_USER’])) {
// “Basic didhfiefdhfu4fjfjdsa34drsdfterrde…”
if (isset($_SERVER[“REMOTE_USER”])) {
$basicAuthData =
base64_decode(substr($_SERVER[“REMOTE_USER”], 6));
} elseif (isset($_SERVER[“REDIRECT_REDIRECT_REMOTE_USER”])) {
$basicAuthData =
base64_decode(substr($_SERVER[“REDIRECT_REDIRECT_REMOTE_USER”], 6));
} elseif (isset($_SERVER[“Authorization”])) {
$basicAuthData =
base64_decode(substr($_SERVER[“Authorization”], 6));
} elseif (isset($_SERVER[“HTTP_AUTHORIZATION”])) {
$basicAuthData =
base64_decode(substr($_SERVER[“HTTP_AUTHORIZATION”], 6));
}
Ich habe auch schon versucht mit den hier (http://www.tine20.org/forum/viewtopic.php?f=12&t=10596&hilit=webdav) genannten Modifikationen weiterzukommen. Leider erfolglos.
Noch eine Idee?
Gruß
Jan
Hm, ich weiß da nun leider nicht mehr weiter.
Das “Glück” an Tine selbst Modifikationen durchführen zu müssen,
damit irgendein Sync läuft hatte ich bislang nicht.
Am Besten das Thema mal im Tine-Forum ansprechen.
Es gibt ja mehrere die bei 1&1 sind.
Großes Kino.
Inbetriebnahme CalDav war ein Kinderspiel.
Vielen Dank!