about summary refs log tree commit homepage
diff options
context:
space:
mode:
-rw-r--r--lib/PublicInbox/Feed.pm8
1 files changed, 5 insertions, 3 deletions
diff --git a/lib/PublicInbox/Feed.pm b/lib/PublicInbox/Feed.pm
index b08bd883..92bbf92d 100644
--- a/lib/PublicInbox/Feed.pm
+++ b/lib/PublicInbox/Feed.pm
@@ -118,13 +118,15 @@ sub get_feedopts {
         }
         my $url_base;
         if ($cgi) {
-                my $cgi_url = $cgi->self_url;
+                my $cgi_url = $cgi->url(-path=>1, -query=>1, -relative=>1);
+                my $base = $cgi->url(-base);
                 $url_base = $cgi_url;
                 if ($url_base =~ s!/(?:|index\.html)?\z!!) {
-                        $rv{atomurl} = "$url_base/index.atom.xml";
+                        $rv{atomurl} = "$base$url_base/index.atom.xml";
                 } else {
                         $url_base =~ s!/?(?:index|all)\.atom\.xml\z!!;
-                        $rv{atomurl} = $cgi_url;
+                        $rv{atomurl} = $base . $cgi_url;
+                        $url_base = $base . $url_base; # XXX is this needed?
                 }
         } else {
                 $url_base = "http://example.com";