Artica Wiki

Well-known files and robots.txt

Publish /.well-known/* discovery files and a generated robots.txt per website, straight from the reverse proxy, without touching the backend web server

Modern browsers, mobile operating systems, password managers, calendar clients, mail servers and security researchers all expect to find small standardised files at fixed URLs on your domain: /robots.txt, /.well-known/security.txt, /.well-known/assetlinks.json, /.well-known/change-password and a dozen more. 
They are defined by RFC 8615 and its companions.

Publishing them normally means editing files on the backend web server 
A server you may not own, may not be allowed to touch, or which is a black-box appliance. 
Well-known files & robots.txt lets the reverse proxy answer those URLs itself, per website, from the Artica web console.

Concept

The feature is an editor of standard responses, not a file manager. For each website rule you enable one or more entries from a fixed catalogue of 15 resources. Artica then renders the content to disk, generates one exact per enabled entry, validates the whole configuration, and only then publishes it.

Three properties are worth understanding before you enable anything.

No more 404 on discovery URLs

Crawlers, mobile operating systems and security scanners request these URLs constantly, whether or not you publish them. 
On a site that does not, every one of those requests becomes a 404 in your logs — noise that hides the 404s you actually care about.

Artica removes that noise without taking anything away from your application. 
For each resource you leave disabled, it emits a location that still proxies to your backend, and replaces only its 404 with an empty 200

Situation What the client receives
The resource is enabled in Artica The document you configured
Disabled, and your backend serves the URL Your backend's own answer, untouched
Disabled, and your backend answers 404 200 with an empty body
Your backend is down (502, 504) The error, unchanged

For the same reason the three redirect entries (change-password, caldav, carddav) get no fallback.
A client asking for them expects a Location header, and an empty 200 would tell it the resource exists and is empty.

The fallback applies to reverse-proxy websites that have a real backend. 
A static HTML site or a blackhole rule has nothing to defer to, so nothing is emitted for them.

Benefits

Use cases

Where to find it

The Well-known line in the website parameters

The resource list

The catalogue of 15 well-known resources

Editing a static resource

Editing the security.txt response

Two buttons help before you commit:

Cache-Control is optional. 
Left empty, no cache header is added. Do not put a long lifetime on security.txt or on OAuth metadata: you want to be able to correct them quickly.

Enabling a resource takes the URL away from your application. 
The modal says so on every entry. It matters most for openid-configuration, webfinger, assetlinks.json and robots.txt, which a modern application may already generate dynamically. 
When in doubt, request the URL first and see whether your backend already answers it.

Editing a redirect resource

Three entries are redirects rather than documents: change-password, caldav and carddav. 
They ask for a target and an HTTP status instead of content.

Editing the change-password redirect

The target may be a local path (/account/change-password) or an absolute http:// or https:// URL. 
Anything else is refused — including any value containing a control character, which is how header-injection attempts are blocked. 
Allowed statuses are 301, 302, 303, 307 and 308; 302 is the sensible default.

The robots.txt engine

robots.txt opens its own editor with four tabs.

robots.txt settings

User-agent groups
Each group targets one user-agent and holds its own directives. 
The Rules column shows how many it contains; the arrows change the order in which groups are rendered.

User-agent groups

Inside a group you may use Allow, Disallow and Crawl-delay. 

Note that Crawl-delay is not universally supported — several major crawlers ignore it. 
Global directives (Sitemap, and the non-standard Host) live in their own tab and are rendered after the groups.
Several Sitemap entries are allowed.

Preview
The preview is produced by the same renderer that writes the published file, so what you read here is exactly what crawlers will receive.

robots.txt preview

The engine is deliberately neutral. 
It never adds a directive you did not configure, and never emits Disallow: / on its own. 
A group with no active rule is omitted rather than rendered as an empty User-agent block, which some parsers attach to the next group.

Good practice