X-Git-Url: https://git.ladys.computer/x_status_git/blobdiff_plain/d9bcb184401cc07d6acc55a8419ce743bfa8289d..HEAD:/Caddyfile

diff --git a/Caddyfile b/Caddyfile
index b4bcbff..95fed0e 100644
--- a/Caddyfile
+++ b/Caddyfile
@@ -9,18 +9,45 @@ status.site.example {
 		path_regexp jsonld \.jsonld$
 	}
 
+	@atom {
+		path_regexp atom \.atom$
+	}
+
 	@bare {
 		not path_regexp /$
 		not path_regexp \.jsonld$
+		not path_regexp \.atom$
 	}
 
 	@empty {
 		expression {re.matcher.suffix} == ""
 	}
 
+	handle / {
+		rewrite * /index.html
+		header Link </about.jsonld>;rel=meta;type="application/ld+json"
+		header Link </statuses.atom>;rel=alternate;type="application/atom+xml"
+	}
+
+	@iri {
+		path_regexp matcher ^/(?P<iri>[^/:]+:[^/]+)/?$
+	}
+
+	handle @iri {
+		handle @bare {
+			rewrite * /.lookup.xhtml
+			header Cache-Control max-age=0
+		}
+
+		handle @slash {
+			redir * /{re.matcher.iri}
+		}
+	}
+
 	handle /about {
 		rewrite * /.about.html
 		header Link </about.jsonld>;rel=meta;type="application/ld+json"
+		header Link </statuses.atom>;rel=alternate;type="application/atom+xml"
 	}
 
 	redir /about/ /about
@@ -30,53 +57,50 @@ status.site.example {
 	handle /statuses {
 		rewrite * /.statuses.html
 		header Link </statuses.jsonld>;rel=meta;type="application/ld+json"
+		header Link </statuses.atom>;rel=alternate;type="application/atom+xml"
 	}
 
-	@statusroot {
-		path_regexp matcher ^/statuses/(?P<path>.*)
-		not path_regexp ^/statuses/index\.
-	}
-
-	handle @statusroot {
-		handle /statuses/ {
-			redir * /statuses
-		}
-
-		handle {
-			redir * /{re.matcher.path}
-		}
-	}
+	redir /statuses/ /statuses
 
 	rewrite /statuses.jsonld /statuses/index.jsonld
 
+	rewrite /statuses.atom /statuses/index.atom
+
 	@dated {
-		path_regexp matcher ^/(?P<ym>\d{4}-\d{2})(?P<suffix>/[^/.]+)?(?:\..*|/)?$
+		path_regexp matcher ^/statuses/(?P<ym>\d{4}-\d{2})(?P<suffix>/[^/.]+)?(?:\..*|/)?$
+		not path_regexp ^/statuses/index[/.]?
 	}
 
 	handle @dated {
 		handle @empty {
 			handle @bare {
 				rewrite * /.topic.html
-				header Link </{re.matcher.ym}.jsonld>;rel=meta;type="application/ld+json"
+				header Link </statuses/{re.matcher.ym}.jsonld>;rel=meta;type="application/ld+json"
+				header Link </statuses.atom>;rel=alternate;type="application/atom+xml"
 			}
 
 			handle @slash {
-				redir * /{re.matcher.ym}
+				redir * /statuses/{re.matcher.ym}
 			}
 
 			handle @jsonld {
-				rewrite * /{re.matcher.ym}/index.jsonld
+				rewrite * /statuses/{re.matcher.ym}/index.jsonld
+			}
+
+			handle @atom {
+				rewrite * /statuses/{re.matcher.ym}/index.atom
 			}
 		}
 
 		handle {
 			handle @bare {
 				rewrite * /.status.html
-				header Link </{re.matcher.ym}.jsonld>;rel=meta;type="application/ld+json"
+				header Link </statuses/{re.matcher.ym}.jsonld>;rel=meta;type="application/ld+json"
+				header Link </statuses.atom>;rel=alternate;type="application/atom+xml"
 			}
 
 			handle @slash {
-				redir * /{re.matcher.ym}{re.matcher.suffix}
+				redir * /statuses/{re.matcher.ym}{re.matcher.suffix}
 			}
 		}
 	}
@@ -91,7 +115,7 @@ status.site.example {
 	rewrite /topics.jsonld /topics/index.jsonld
 
 	@topics {
-		path_regexp matcher ^/(?:topics/(?P<topic>[0-9A-Za-z_-]+))(?P<suffix>/[^/.]+)?(?:\..*|/)?$
+		path_regexp matcher ^/topics/(?P<topic>[0-9A-Za-z_-]+)(?P<suffix>/[^/.]+)?(?:\..*|/)?$
 		not path_regexp ^/topics/index[/.]?
 	}
 
@@ -100,6 +124,7 @@ status.site.example {
 			handle @bare {
 				rewrite * /.topic.html
 				header Link </topics/{re.matcher.topic}.jsonld>;rel=meta;type="application/ld+json"
+				header Link </topics/{re.matcher.topic}.atom>;rel=alternate;type="application/atom+xml"
 			}
 
 			handle @slash {
@@ -109,12 +134,17 @@ status.site.example {
 			handle @jsonld {
 				rewrite * /topics/{re.matcher.topic}/index.jsonld
 			}
+
+			handle @atom {
+				rewrite * /topics/{re.matcher.topic}/index.atom
+			}
 		}
 
 		handle {
 			handle @bare {
 				rewrite * /.status.html
 				header Link </topics/{re.matcher.topic}.jsonld>;rel=meta;type="application/ld+json"
+				header Link </topics/{re.matcher.topic}.atom>;rel=alternate;type="application/atom+xml"
 			}
 
 			handle @slash {
@@ -123,7 +153,10 @@ status.site.example {
 		}
 	}
 
-	header Access-Control-Allow-Origin "*"
+	header {
+		Access-Control-Allow-Origin "*"
+		?Cache-Control max-age=3600
+	}
 
 	file_server {
 		index index.xml index.xhtml index.html index.rdf index.txt