From: Lady Date: Sun, 18 Sep 2022 08:26:03 +0000 (-0700) Subject: Add sample Caddyfile X-Git-Tag: 0.2.0~3 X-Git-Url: https://git.ladys.computer/x_status_git/commitdiff_plain/d9bcb184401cc07d6acc55a8419ce743bfa8289d?ds=sidebyside Add sample Caddyfile --- diff --git a/Caddyfile b/Caddyfile new file mode 100644 index 0000000..b4bcbff --- /dev/null +++ b/Caddyfile @@ -0,0 +1,131 @@ +status.site.example { + root * /home/USERNAME/status.site.example/public + + @slash { + path_regexp slash /$ + } + + @jsonld { + path_regexp jsonld \.jsonld$ + } + + @bare { + not path_regexp /$ + not path_regexp \.jsonld$ + } + + @empty { + expression {re.matcher.suffix} == "" + } + + handle /about { + rewrite * /.about.html + header Link ;rel=meta;type="application/ld+json" + } + + redir /about/ /about + + rewrite /about.jsonld /about/index.jsonld + + handle /statuses { + rewrite * /.statuses.html + header Link ;rel=meta;type="application/ld+json" + } + + @statusroot { + path_regexp matcher ^/statuses/(?P.*) + not path_regexp ^/statuses/index\. + } + + handle @statusroot { + handle /statuses/ { + redir * /statuses + } + + handle { + redir * /{re.matcher.path} + } + } + + rewrite /statuses.jsonld /statuses/index.jsonld + + @dated { + path_regexp matcher ^/(?P\d{4}-\d{2})(?P/[^/.]+)?(?:\..*|/)?$ + } + + handle @dated { + handle @empty { + handle @bare { + rewrite * /.topic.html + header Link ;rel=meta;type="application/ld+json" + } + + handle @slash { + redir * /{re.matcher.ym} + } + + handle @jsonld { + rewrite * /{re.matcher.ym}/index.jsonld + } + } + + handle { + handle @bare { + rewrite * /.status.html + header Link ;rel=meta;type="application/ld+json" + } + + handle @slash { + redir * /{re.matcher.ym}{re.matcher.suffix} + } + } + } + + handle /topics { + rewrite * /.topics.html + header Link ;rel=meta;type="application/ld+json" + } + + redir /topics/ /topics + + rewrite /topics.jsonld /topics/index.jsonld + + @topics { + path_regexp matcher ^/(?:topics/(?P[0-9A-Za-z_-]+))(?P/[^/.]+)?(?:\..*|/)?$ + not path_regexp ^/topics/index[/.]? + } + + handle @topics { + handle @empty { + handle @bare { + rewrite * /.topic.html + header Link ;rel=meta;type="application/ld+json" + } + + handle @slash { + redir * /topics/{re.matcher.topic} + } + + handle @jsonld { + rewrite * /topics/{re.matcher.topic}/index.jsonld + } + } + + handle { + handle @bare { + rewrite * /.status.html + header Link ;rel=meta;type="application/ld+json" + } + + handle @slash { + redir * /topics/{re.matcher.topic}{re.matcher.suffix} + } + } + } + + header Access-Control-Allow-Origin "*" + + file_server { + index index.xml index.xhtml index.html index.rdf index.txt + } +} diff --git a/README.markdown b/README.markdown index a0f8413..657527d 100644 --- a/README.markdown +++ b/README.markdown @@ -71,7 +71,9 @@ You’ll need to supply some variables there, too :— ## Server Configuration Your server should be configured to serve the following files from the - provided `PUBLIC_DIRECTORY` in response to the following requests :— + provided `PUBLIC_DIRECTORY` in response to the following requests. +For people using Caddy to serve their content, a sample `Caddyfile` is + included in this repository. ### H·T·M·L responses