threads / patch / 13846

patchFix missing "HEAD" in the RewriteRule

Subject: [PATCH] Fix missing "HEAD" in the RewriteRule

## tl;dr

4 messages between Jun 7, 2008 and Jun 8, 2008. Diffs are folded; open one to read it.

replies: 3people: 4as markdown or json

Ask Bjørn Hansen· Jun 7, 2008, 07:19 UTC · lore
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...

Show changes to gitweb/README +14 −4
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· Jun 7, 2008, 09:16 UTC · re: Ask Bjørn Hansen · lore

Re: [PATCH] Fix missing "HEAD" in the RewriteRule

Ask Bjørn Hansen <ask@develooper.com> writes:
Show 7 quoted lines
> 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· Jun 7, 2008, 10:06 UTC · re: Ask Bjørn Hansen · lore

Re: [PATCH] Fix missing "HEAD" in the RewriteRule

On Sat, Jun 07, 2008 at 12:19:26AM -0700, Ask Bjørn Hansen wrote:
Show 27 quoted lines
> 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· Jun 8, 2008, 01:17 UTC · re: Ask Bjørn Hansen · lore

Re: [PATCH] Fix missing "HEAD" in the RewriteRule

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:
Show 5 quoted lines
> ...
> +    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.

← back to recent threads