"Your web server is not properly set up to resolve..." SOLUTION

I have been getting the “Your web server is not properly set up to resolve” messages for quite a while, I spent a long time searching through the forum, and while I found other people’s problems relatable, I found very few actual solutions - most people just put a link to the documentation WHICH ISN’T ENOUGH - we wouldn’t need the forum if the documentation answered everything, would we? One person even just put a link to a search in the forum for the warning - not a link to a solution, just a link to a list of MORE THAN 50 PEOPLE with the same problem. OBVIOUSLY this is a a serious issue - a lot of people are asking about it. OBVIOUSLY the documentation is insufficient. And OBVIOUSLY the existing forum posts fall short of answering all the questions.

HERE IS HOW WE SOLVED THE PROBLEM:
On Ubuntu, I went to the .conf file for my site in /etc/apache2/site-available and within the <VirtualHost *:443> section I added

Header always set Strict-Transport-Security “max-age=15552000; includeSubDomains; strict-origin; preload”
Redirect 301 /.well-known/carddav /nextcloud/remote.php/dav
Redirect 301 /.well-known/caldav /nextcloud/remote.php/dav
Redirect 301 .well-known/webfinger /nextcloud/index.php/.well-known/webfinger
Redirect 301 .well-known/nodeinfo /nextcloud/index.php/.well-known/nodeinfo

Is this ideal? I have no idea - but it worked. And now that I’ve posted an actual solution I’m sure I’ll hear plenty of negative feedback about how people “would have been helpful if…” - and it is all BS, you weren’t helpful with the last person that had this problem, you wouldn’t have been this time either. Hopefully this post comes up in the search results for all the future troubleshooters experiencing this same issue.

Thank you to Stefan at https://strobelstefan.org/2020/03/02/nextcloud-und-das-laestige-problem-mit-well-known-caldav-well-known-carddav/ for getting me most of the way there.

1 Like

Sorry but this is all explained in detail in the manual https://docs.nextcloud.com/server/latest/admin_manual/issues/general_troubleshooting.html#service-discovery-label

and discused and explained on this forum [solved] .well-known/caldav check in 13.0.7 explained - #33 by baoang

sorry noone here was willing to help do your job for you.

The exact fix outlined in the documentation has always worked for me…

I can only speak for Ununtu and Debian, where basically all you have to do is adding the AllowOveride All directive to your Apache VirtualHost. Then it uses the .htaccess file provided by Nextcloud and this is working out of the box. If you are using the default webroot /var/www you don’t even have to do that, because it’s already the default setting in /etc/apache2/apache2.conf..

Sorry but maybe that’s the issue here. If you want to host web applications with Apache you should learn at least the basics about how Apache works. And if you don’t want to do that, you should at least try to do an installation that is as close to the “default” as possible, which means following the installation and configuration examples in the documentation and use one of the recommended and suported OSs which would be Ubuntu/Debian or CentOS/RHEL.

The default settings on diffrent platforms do vary and there are many diffrent ways how you can setup your system and webserver… So there are no “one fits them all” solutions, meaning your solution may work with your config but will probably not be ideal or not work in the exact same way on another system.

[ANOTHER, SIMPLER SOLUTION][SOLVED]
It also took me WAY to long to solve it, and it is a rather dirty (?) and stupid solution:

Inside the .htaccess file, I changed
RewriteRule ^/\.well-known/nodeinfo
to
RewriteRule ^\.well-known/carddav
and everything works now.

If you think about it, It kind of makes sense:
In regex, "^" means it matches anything that follows, and "\." is an escaped dot, so
^\.well-known/carddav
matches
https://test.com/.well-known/carddav,
but
^/\.well-known/carddav
matches
https://test.com//.well-known/carddav,
which makes no sense???

Adding to /etc/apache2/sites-available/default-ssl.conf the following worked for me.

<VirtualHost _default_:443>
	DocumentRoot /var/www/html

<IfModule mod_headers.c>
      Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains; strict-origin; preload"
      Redirect 301 /.well-known/carddav /nextcloud/remote.php/dav
      Redirect 301 /.well-known/caldav /nextcloud/remote.php/dav
      Redirect 301 /.well-known/webfinger /nextcloud/index.php/.well-known/webfinger
      Redirect 301 /.well-known/nodeinfo /nextcloud/index.php/.well-known/nodeinfo
    </IfModule>