我在共享主机上有一个 nextcloud 实例。
不幸的是,我无法将它用于 cal-/carddav,因为(只有)mac 似乎无法找到所提供的服务。
从几个版本开始,nextcloud 管理界面就告诉我,服务发现无法正常工作。虽然 dav 对日历和联系人应用程序提供的链接做出了这样的响应,但某些客户端 (mac) 所需的 .wellknown 链接会重定向到默认文件视图。
安装过程完全按照 nextclouds 的故障排除文档告诉我的方式设置重定向。
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} DavClnt
RewriteRule ^$ /remote.php/webdav/ [L,R=302]
RewriteRule .* - [env=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteRule ^\.well-known/host-meta /public.php?service=host-meta [QSA,L]
RewriteRule ^\.well-known/host-meta\.json /public.php?service=host-meta-json [QSA,L]
RewriteRule ^\.well-known/webfinger /public.php?service=webfinger [QSA,L]
RewriteRule ^\.well-known/carddav /remote.php/dav/ [R=301,L]
RewriteRule ^\.well-known/caldav /remote.php/dav/ [R=301,L]
RewriteRule ^remote/(.*) remote.php [QSA,L]
RewriteRule ^(?:build|tests|config|lib|3rdparty|templates)/.* - [R=404,L]
RewriteCond %{REQUEST_URI} !^/\.well-known/(acme-challenge|pki-validation)/.*
RewriteRule ^(?:\.|autotest|occ|issue|indie|db_|console).* - [R=404,L]
</IfModule>
看到 caldav 和 carddav 两条线了吗?
但是,这些重写版本还是有些问题。问题出在哪里呢?