# gitweb sets incorrect <base> header

4 messages from 2009-04-28 to 2009-04-30. Participants: Peter Simons, Giuseppe Bilotta, Jakub Narebski.
Thread: https://gitlist.dev/t/19106

## Peter Simons, 2009-04-28 12:41

Subject: gitweb sets incorrect <base> header
Message-ID: <877i15uf14.fsf@write-only.cryp.to>
URL: https://gitlist.dev/e/877i15uf14.fsf%40write-only.cryp.to

```
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?

Take care,
Peter

```

## Giuseppe Bilotta, 2009-04-29 09:22

Subject: Re: gitweb sets incorrect <base> header
Message-ID: <gt9685$l9g$1@ger.gmane.org>
URL: https://gitlist.dev/e/gt9685%24l9g%241%40ger.gmane.org
In-Reply-To: <877i15uf14.fsf@write-only.cryp.to>

```
On Tuesday 28 April 2009 14:41, Peter Simons wrote:
> 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

Both in Konqueror and Opera the patch link on that page refers to 

http://git.cryp.to/fastcgi/patch/9ad9965b3fa293c458df14391f181f2f8f1197cd

which is quite correct.

> page doesn't exist. It appears that $base_url is not determined correctly.
> 
> Does anyone have a clue how that problem can be fixed?

OTOH by looking at the source I see

<base href="http://git.cryp.to/cgi-bin/gitweb.cgi" />

which doesn't seem correct at all. Do you have something in the gitweb config
that may be hard-coding the base url?

-- 
Giuseppe "Oblomov" Bilotta

```

## Jakub Narebski, 2009-04-29 09:33

Subject: Re: gitweb sets incorrect <base> header
Message-ID: <m3k553oldj.fsf@localhost.localdomain>
URL: https://gitlist.dev/e/m3k553oldj.fsf%40localhost.localdomain
In-Reply-To: <877i15uf14.fsf@write-only.cryp.to>

```
Peter Simons <simons@cryp.to> 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

```

## Peter Simons, 2009-04-30 10:06

Subject: Re: gitweb sets incorrect <base> header
Message-ID: <87preuzc96.fsf@write-only.cryp.to>
URL: https://gitlist.dev/e/87preuzc96.fsf%40write-only.cryp.to
In-Reply-To: <m3k553oldj.fsf@localhost.localdomain>

```
Hi Jakub,

 > Or you can set up $base_url in your gitweb configuration file (which
 > is not mentioned in the gitweb/README, unfortunately).

My gitweb.conf file is now configured as follows:

  $my_url = "http://git.cryp.to/";
  $my_uri = "/";
  $base_url = $my_uri;
  [...]

That seems to do the trick.

Thank you for your help,
Peter

```
