Nextcloud .well-known Verzeichnis wiederherstellen?
Hallo,
ich habe auf meinem Server Nextcloud installiert.
Irgendwie fehlt seit neuestem aber der Ordner .well-known im Wurzelverzeichnis des Servers....
Kann ich diesen Ordner mitsamt Inhalt irgendwie neu erstellen oder waren dort wichtige, individuelle Daten drin?
2 Antworten
Bist Du sicher, dass Du das Verzeichnis hattest? Es ist in der Regel unwichtig bzw. auch gar nicht vorhanden. Es gibt Anwendungen, die für die Synchronisation nach /.well-known/carddav bzw. /.well-known/caldav suchen. Auch für das Ausrollen von Zertifikaten per ACME wird das Verzeichnis benötigt. Dazu hat Nextcloud in der .htaccess entsprechende Rewrite-Regeln:
<IfModule mod_rewrite.c>
RewriteEngine on
...
RewriteRule ^\.well-known/carddav /remote.php/dav/ [R=301,L]
RewriteRule ^\.well-known/caldav /remote.php/dav/ [R=301,L]
RewriteRule ^\.well-known/(?!acme-challenge|pki-validation) /index.php [QSA,L]
RewriteRule ^(?:\.(?!well-known)|autotest|occ|issue|indie|db_|console).* - [R=404,L]
</IfModule>
Die Aufrufe zur Synchronisierung per CardDAV und CalDAV werden auf /remote.php/dav umgeleitet. Alle anderen Aufrufe landen bei /index.php.
Bleibt also noch das Ausrollen von Zertifikaten per ACME, also z. B von Letsencrypt. Verwendest Du Zertifikate von Letsencrypt? Dann lege das Verzeichnis einfach neu an:
sudo mkdir -p /var/www/nextcloud/.well-known/acme-challenge
sudo chown www-data.www-data /var/www/nextcloud/.well-known/acme-challenge
Wenn Du ein neues Zertifikat bei Letsencrypt beantragst, werden da die nötigen Challenges hineingeschrieben und anschließend wieder gelöscht. Das Verzeichnis ist also im Regelfall leer.
Hier fehlen die entsprechenden Einträge in der .htaccess. Versuche mal
sudo -u www-data php occ maintenance:update:htaccess
Das sollte das Problem richten.
Ich habe jetzt zu meiner .htaccess im Wurzelverzeichnis des Servers das hinzugefügt:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^\.well-known/carddav /h/nextcloud/remote.php/dav/ [R=301,L]
RewriteRule ^\.well-known/caldav /h/nextcloud/remote.php/dav/ [R=301,L]
RewriteRule ^\.well-known/(?!acme-challenge|pki-validation) /h/nextcloud/index.php [QSA,L]
RewriteRule ^(?:\.(?!well-known)|autotest|occ|issue|indie|db_|console).* - [R=404,L]
</IfModule>
Es zeigt aber noch die gleichen Meldungen an.
Liegt das vielleicht daran, dass meine Domain (z.B. domain.de) in /h umgeleitet wird? Nextcloud ist quasi über domain.de/nextcloud erreichbar.
Ich habe auf meinem gemieteten Server leider keine sudo-Berechtigung....
Liegt das vielleicht daran, dass meine Domain (z.B. domain.de) in /h umgeleitet wird? Nextcloud ist quasi über domain.de/nextcloud erreichbar.
Ja, das ist das Problem. Wie kommst Du jetzt auf /h?
Ich habe auf meinem gemieteten Server leider keine sudo-Berechtigung.
Dann scheidet der occ-Befehl natürlich aus. In der .htaccess muss es dann heißen:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^\.well-known/carddav /nextcloud/remote.php/dav/ [R=301,L]
RewriteRule ^\.well-known/caldav /nextcloud/remote.php/dav/ [R=301,L]
RewriteRule ^\.well-known/(?!acme-challenge|pki-validation) /nextcloud/index.php [QSA,L]
RewriteRule ^(?:\.(?!well-known)|autotest|occ|issue|indie|db_|console).* - [R=404,L]
</IfModule>
Ach danke, mein Problem war, dass die .htaccess nicht im Wurzelverzeichnis liegen muss, sondern dort, wo die Domain landet.....
Jetzt funktioniert es!
Üblicherweise wird dieser Ordner benutzt. um z.b. LetsEncrypt Zertifikate zu verifizieren.
Es sollte also normalerweise gar nicht stören, wenn dieser Ordner fehlt. Der Server wird ihn sich wahrsheinlich selber ersttellen, wenn er ihn benötigt.
Danke schonmal für die hilfreiche Antwort!
In meinen Nextcloud-Einstellungen finden sich nämlich u. a. folgende Probleme: