X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=lib%2FPublicInbox%2FWWW.pm;h=8f069642f5cd99d9bd724e45cfcf469f2865c91f;hb=c23a40e9f6ee1af2feeb0275f14dd9f5b7e91f8c;hp=be34e1cd544d742de593859ab9b0a7c37ea68a22;hpb=289778885f8155fbd05a54ed4a84aeb724e68b04;p=public-inbox.git diff --git a/lib/PublicInbox/WWW.pm b/lib/PublicInbox/WWW.pm index be34e1cd..8f069642 100644 --- a/lib/PublicInbox/WWW.pm +++ b/lib/PublicInbox/WWW.pm @@ -58,6 +58,10 @@ sub run { my $sp = $2; invalid_list(\%ctx, $1) || get_subject_path(\%ctx, $cgi, $sp); + } elsif ($path_info =~ m!$LISTNAME_RE/f/\S+\.txt\z!o) { + invalid_list_mid(\%ctx, $1, $2) || + redirect_mid_txt(\%ctx, $cgi); + # convenience redirects, order matters } elsif ($path_info =~ m!$LISTNAME_RE/(m|f|t|s)/(\S+)\z!o) { my $pfx = $2; @@ -231,6 +235,15 @@ sub redirect_mid { do_redirect($url . ".html$anchor"); } +# only hit when somebody tries to guess URLs manually: +sub redirect_mid_txt { + my ($ctx, $cgi, $pfx) = @_; + my $listname = $ctx->{listname}; + my $url = self_url($cgi); + $url =~ s!/$listname/f/(\S+\.txt)\z!/$listname/m/$1!; + do_redirect($url); +} + sub do_redirect { my ($url) = @_; [ 301,