Re: gitweb sets incorrect <base> header
flat view
From: Jakub Narebski <hidden>
Date: 2016-06-15 22:46:41
Peter Simons [off-list ref] writes:
Hi, after a recent gitweb update to revision v1.6.3-rc3-12-gb79376c, the CGI now generates an incorrect <base> header. For example, the first "patch" on the page http://git.cryp.to/fastcgi/commitdiff/9ad9965b3fa293c458df14391f181f2f8f1197cd erroneously refer to http://git.cryp.to/cgi-bin/gitweb.cgi#patch1, but that page doesn't exist. It appears that $base_url is not determined correctly. Does anyone have a clue how that problem can be fixed?
See gitweb/README:
* $my_url, $my_uri
Full URL and absolute URL of gitweb script;
in earlier versions of gitweb you might have need to set those
variables, now there should be no need to do it.
Or you can set up $base_url in your gitweb configuration file (which
is not mentioned in the gitweb/README, unfortunately).
Since 81d3fe9 (gitweb: fix wrong base URL when non-root DirectoryIndex)
by Giuseppe Bilotta (I have CC-ed him) gitweb tries to set $base_url
using $cgi->url(-base => 1) . $ENV{'SCRIPT_NAME'} if we use $path_info,
and if both $my_url and $my_uri begin with $path_info.
I do not know CGI.pm well enough to think up a better solution, but
when $base_url was introduced I have posted email on git mailing list
about slight mismatch between what CGI.pm thinks as absolute URL and
the notion of absolute URL and absolute _paths_ in appropriate RFC,
see e.g.
http://thread.gmane.org/gmane.comp.version-control.git/107344/focus=107437
http://thread.gmane.org/gmane.comp.version-control.git/107898/focus=108010
P.S. I didn't look at the site in question.
--
Jakub Narebski
Poland
ShadeHawk on #git