sub handler {
        my ($r) = @_;
        my ($action, $extrapath);
-       my $url = $ENV{'SCRIPT_URL'};
+       my  $url = $ENV{'REQUEST_URI'};
+       $url =~ s/\?.*//; # Remove questionmark and anything after it
        if ($url eq '/') {
                $action = 'commitfest_search';
        }
 
        my %stash;
        my $content = $self->generate_headers();
        my $uri = '';
+       my $scriptname = $ENV{'REQUEST_URI'};
+       $scriptname =~ s/\?.*//;
+
        if ($ENV{'REQUEST_METHOD'} eq 'GET') {
-           if ($ENV{'SCRIPT_NAME'} ne '/action/login') {
+           if ($scriptname ne '/action/login') {
                my $req = $ENV{'REQUEST_URI'};
                $req =~ s/[^A-Za-z0-9]/sprintf "%%%x", ord($&)/ge;;
                $uri = '?uri=' . $req;
                'rss_alternate' => $self->{'rss_alternate'},
                'title' => $self->{'title'},
                'error_list' => $self->{'error_list'},
-               'script_name' => $ENV{'SCRIPT_NAME'},
+               'script_name' => $scriptname,
                'uri' => $uri,
        }, \$content) || die $template->error();
        $template->process($file . '.tt2', \%stash, \$content)