From b60a668b43b0a279c2a1d621c009396bea1a4898 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Thu, 10 Apr 2014 20:02:34 +0000 Subject: cgi: /$LISTNAME/ and /$LISTNAME/index.html are equal This prevents ambiguity when switching URLs between static file servers and CGI. The /$LISTNAME/index.html URL appearing in the wild is inevitable because of our static file server support. Worst yet, there's no easy/consistent way to get all installations detect and 301 them to the shorter /$LISTNAME/. So we make the CGI support /$LISTNAME/index.html. The downside of this is the potential duplicate entry in all caches. --- lib/PublicInbox/Feed.pm | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'lib/PublicInbox/Feed.pm') diff --git a/lib/PublicInbox/Feed.pm b/lib/PublicInbox/Feed.pm index a6c1b9c1..da4cc04a 100644 --- a/lib/PublicInbox/Feed.pm +++ b/lib/PublicInbox/Feed.pm @@ -116,8 +116,12 @@ sub get_feedopts { if ($cgi) { my $cgi_url = $cgi->self_url; $url_base = $cgi_url; - $url_base =~ s!/?(?:index|all)\.atom\.xml\z!!; - $rv{atomurl} = $cgi_url; + if ($url_base =~ s!/(?:|index\.html)?\z!!) { + $rv{atomurl} = "$url_base/index.atom.xml"; + } else { + $url_base =~ s!/?(?:index|all)\.atom\.xml\z!!; + $rv{atomurl} = $cgi_url; + } } else { $url_base = "http://example.com"; $rv{atomurl} = "$url_base/index.atom.xml"; -- cgit v1.2.3-24-ge0c7