.well-known

From IndieWeb


.well-known is literally the path "/.well-known/" under a domain and used as a standardized (literally a "well-known") location for discovering domain-wide meta-data, and is generally avoided by IndieWeb-related specs, instead preferring follow your nose discovery techniques and methods.

It has been codified by the IETF and IANA in RFC5785 and registry of Well-Known URIs respectively.

Relevant Uses

Issues

  • Some web hosts restrict customer access to .well-known in shared plans, rendering it unusable for vast amounts of websites. Hosts known to not support full customer access to .well-known:
  • Problem: community sites that are user-editable (e.g. via MediaWiki) could allow anyone to create a .well-known resource (like this wiki page!) or a subresource like .well-known/security.txt
  • Criticism: bad approach that is counter to the read-write web and adds extra admintax to all server maintainers: https://chat.indieweb.org/meta/2022-05-13/1652432145141300
    • "the point is .well-known is not the only way to do well-known URLs, so just blocking .well-known from being user-editable isn't enough, you have to go list out every possible well-known URL that might cause a problem if it's user-editable and block that too" @aaronpk May 13, 2022
  • Criticism: unnecessary domain-level assumption for use-cases that can by handled by resource-level discovery: it's almost always a web architecture error to design something for a domain (also includes root /noun.txt approaches) instead of designing for an arbitrary URL (HTML at some page).
  • Criticism: everyone's supposed to register their .well-known URIs with IANA but pretty much nobody does

How to test Apache/PHP web host support

Pieces of software like Bridgy Fed or Nextcloud usually either make use of Apache RewriteRules to serve content from .well-known. To check that this is possible on your web host, add the following to your root .htaccess file:

<IfModule mod_rewrite.c>
  RewriteRule
  RewriteRule ^\.well-known/test /well-known-test-succeeded [R=302,L]
</IfModule>

Then, visit yourdomain.com/.well-known/test. If you were redirected to yourdomain.com/well-known-test-succeeded, then your host supports .well-known rewrites. If not, it likely doesn’t — please add your host to the list above!

See Also