diff options
author | Giuseppe Bilotta <giuseppe.bilotta@gmail.com> | 2009-01-02 12:34:40 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2009-01-06 19:33:24 -0800 |
commit | fb098a942b925296e0e86b6935a4fdda872e2f99 (patch) | |
tree | afd2d470a4fb920c6f5dcf1cc9148b340db8a1fa /gitweb | |
parent | df63fbbf46c5ec855132f4c631c32b45f67b42e4 (diff) | |
download | git-fb098a942b925296e0e86b6935a4fdda872e2f99.tar.gz git-fb098a942b925296e0e86b6935a4fdda872e2f99.tar.xz |
gitweb: don't use pathinfo for global actions
With PATH_INFO urls, actions for the projects list (e.g. opml,
project_index) were being put in the URL right after the base. The
resulting URL is not properly parsed by gitweb itself, since it expects
a project name as first component of the URL.
Accepting global actions in use_pathinfo is not a very robust solution
due to possible present and future conflicts between project names and
global actions, therefore we just refuse to create PATH_INFO URLs when
the project is not defined.
Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
Acked-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'gitweb')
-rwxr-xr-x | gitweb/gitweb.perl | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl index 7999bb37d..b16400193 100755 --- a/gitweb/gitweb.perl +++ b/gitweb/gitweb.perl @@ -830,7 +830,7 @@ sub href (%) { } my $use_pathinfo = gitweb_check_feature('pathinfo'); - if ($use_pathinfo) { + if ($use_pathinfo and defined $params{'project'}) { # try to put as many parameters as possible in PATH_INFO: # - project name # - action @@ -845,7 +845,7 @@ sub href (%) { $href =~ s,/$,,; # Then add the project name, if present - $href .= "/".esc_url($params{'project'}) if defined $params{'project'}; + $href .= "/".esc_url($params{'project'}); delete $params{'project'}; # since we destructively absorb parameters, we keep this |