# [PATCH] Fix missing "HEAD" in the RewriteRule

4 messages from 2008-06-07 to 2008-06-08. Participants: Ask Bjørn Hansen, Jakub Narebski, Mike Hommey, Junio C Hamano.
Thread: https://gitlist.dev/t/13846

## Ask Bjørn Hansen, 2008-06-07 07:19

Subject: [PATCH] Fix missing "HEAD" in the RewriteRule
Message-ID: <1212823166-25098-1-git-send-email-ask@develooper.com>
URL: https://gitlist.dev/e/1212823166-25098-1-git-send-email-ask%40develooper.com

```
Also add a few more hints for how to setup and configure gitweb as described
---
 gitweb/README |   18 ++++++++++++++----
 1 files changed, 14 insertions(+), 4 deletions(-)

The important change is to add HEAD into the regexp, everything else is
optional...

diff --git a/gitweb/README b/gitweb/README
index 8f7ea36..b96834b 100644
--- a/gitweb/README
+++ b/gitweb/README
@@ -255,12 +255,15 @@ Webserver configuration
 If you want to have one URL for both gitweb and your http://
 repositories, you can configure apache like this:
 
-<VirtualHost www:80>
-    ServerName git.domain.org
+<VirtualHost *:80>
+    ServerName git.example.org
     DocumentRoot /pub/git
-    RewriteEngine on
-    RewriteRule ^/(.*\.git/(?!/?(info|objects|refs)).*)?$ /cgi-bin/gitweb.cgi%{REQUEST_URI}  [L,PT]
     SetEnv	GITWEB_CONFIG	/etc/gitweb.conf
+    RewriteEngine on
+    # make the front page an internal rewrite to the gitweb script 
+    RewriteEngine ^/$  /cgi-bin/gitweb.cgi
+    # make access for "dumb clients" work
+    RewriteRule ^/(.*\.git/(?!/?(HEAD|info|objects|refs)).*)?$ /cgi-bin/gitweb.cgi%{REQUEST_URI}  [L,PT]
 </VirtualHost>
 
 The above configuration expects your public repositories to live under
@@ -276,6 +279,13 @@ override the defaults given at the head of the gitweb.perl (or
 gitweb.cgi).  Look at the comments in that file for information on
 which variables and what they mean.
 
+If you use the rewrite rules from the example you'll likely also need
+something like the following in your gitweb.conf (or gitweb_config.perl) file:
+
+  @stylesheets = ("/some/absolute/path/gitweb.css");
+  $my_uri = "/";
+  $home_link = "/";
+
 
 Originally written by:
   Kay Sievers <kay.sievers@vrfy.org>
-- 
1.5.3.5.561.g140d

```

## Jakub Narebski, 2008-06-07 09:16

Subject: Re: [PATCH] Fix missing "HEAD" in the RewriteRule
Message-ID: <m3bq2dy58j.fsf@localhost.localdomain>
URL: https://gitlist.dev/e/m3bq2dy58j.fsf%40localhost.localdomain
In-Reply-To: <1212823166-25098-1-git-send-email-ask@develooper.com>

```
Ask Bjørn Hansen <ask@develooper.com> writes:

> Also add a few more hints for how to setup and configure gitweb as described
> ---
>  gitweb/README |   18 ++++++++++++++----
>  1 files changed, 14 insertions(+), 4 deletions(-)
> 
> The important change is to add HEAD into the regexp, everything else is
> optional...
[...]
> @@ -255,12 +255,15 @@ Webserver configuration
>  If you want to have one URL for both gitweb and your http://
>  repositories, you can configure apache like this:

Thanks a lot.

The only (minor) complaint is that from the commit message itself it
is not obvous that you meant web server (Apache) configuration trick
to have one URL for both gitweb and access via HTTP protocol for git
repositories (fetch, clone,...).

-- 
Jakub Narebski
Poland
ShadeHawk on #git

```

## Mike Hommey, 2008-06-07 10:06

Subject: Re: [PATCH] Fix missing "HEAD" in the RewriteRule
Message-ID: <20080607100627.GA990@glandium.org>
URL: https://gitlist.dev/e/20080607100627.GA990%40glandium.org
In-Reply-To: <1212823166-25098-1-git-send-email-ask@develooper.com>

```
On Sat, Jun 07, 2008 at 12:19:26AM -0700, Ask Bjørn Hansen wrote:
> Also add a few more hints for how to setup and configure gitweb as described
> ---
>  gitweb/README |   18 ++++++++++++++----
>  1 files changed, 14 insertions(+), 4 deletions(-)
> 
> The important change is to add HEAD into the regexp, everything else is
> optional...
> 
> diff --git a/gitweb/README b/gitweb/README
> index 8f7ea36..b96834b 100644
> --- a/gitweb/README
> +++ b/gitweb/README
> @@ -255,12 +255,15 @@ Webserver configuration
>  If you want to have one URL for both gitweb and your http://
>  repositories, you can configure apache like this:
>  
> -<VirtualHost www:80>
> -    ServerName git.domain.org
> +<VirtualHost *:80>
> +    ServerName git.example.org
>      DocumentRoot /pub/git
> -    RewriteEngine on
> -    RewriteRule ^/(.*\.git/(?!/?(info|objects|refs)).*)?$ /cgi-bin/gitweb.cgi%{REQUEST_URI}  [L,PT]
>      SetEnv	GITWEB_CONFIG	/etc/gitweb.conf
> +    RewriteEngine on
> +    # make the front page an internal rewrite to the gitweb script 
> +    RewriteEngine ^/$  /cgi-bin/gitweb.cgi

You meant RewriteRule, right ?

Mike

```

## Junio C Hamano, 2008-06-08 01:17

Subject: Re: [PATCH] Fix missing "HEAD" in the RewriteRule
Message-ID: <7vbq2cn2rk.fsf@gitster.siamese.dyndns.org>
URL: https://gitlist.dev/e/7vbq2cn2rk.fsf%40gitster.siamese.dyndns.org
In-Reply-To: <1212823166-25098-1-git-send-email-ask@develooper.com>

```
Ask Bjørn Hansen <ask@develooper.com> writes:

> Also add a few more hints for how to setup and configure gitweb as described

I'll squash in Mike Hommey's typofix to make the patch to read like this:

> ...
> +    RewriteEngine on
> +    # make the front page an internal rewrite to the gitweb script 
> +    RewriteRule ^/$  /cgi-bin/gitweb.cgi
> ...

I'll also retitle it to "gitweb setup instruction: rewrite HEAD and root
as well".

Please sign-off your future patches.

Thanks.

```
