X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=FS%2FFS%2FCGI.pm;h=972625ff69a905c40f867d12d97b99dc9940580a;hp=7ad1dc28f71bba658be7398bf90882e8adc24d85;hb=395cc72629d31c8dcd138acf423e66d2d73d89d2;hpb=9a90f2af0663c9b4e9611e044fd25349425d1aec diff --git a/FS/FS/CGI.pm b/FS/FS/CGI.pm index 7ad1dc28f..972625ff6 100644 --- a/FS/FS/CGI.pm +++ b/FS/FS/CGI.pm @@ -227,9 +227,15 @@ sub popurl { =cut sub rooturl { - # better to start with the client-provided URL - my $cgi = &FS::UID::cgi; - my $url_string = $cgi->isa('Apache') ? $cgi->uri : $cgi->url; + my $url_string; + if ( scalar(@_) ) { + $url_string = shift; + } else { + # better to start with the client-provided URL + my $cgi = &FS::UID::cgi; + $url_string = $cgi->isa('Apache') ? $cgi->uri : $cgi->url; + } + $url_string =~ s/\?.*//; #even though this is kludgy @@ -238,10 +244,9 @@ sub rooturl { $url_string =~ s{ / - (browse|config|docs|edit|graph|misc|search|view|pref|rt|elements) - / - (process/)? - ([\w\-\.\/]+) + (browse|config|docs|edit|graph|misc|search|view|pref|elements|rt|torrus) + (/process)? + ([\w\-\.\/]*) $ } {}x;