Troubles using special characters in links with lighttpd

John Keeping john at keeping.me.uk
Fri May 15 15:34:45 CEST 2015


On Fri, May 15, 2015 at 03:12:53PM +0200, David Demelier wrote:
> On Fri, 2015-05-15 at 13:39 +0100, John Keeping wrote:
> > On Fri, May 15, 2015 at 01:24:29PM +0100, John Keeping wrote:
> > 
> > 	<a href="/code/tree/C%20%20">C  </a>
> > 
> > So I think what's happening is that you rewrite the URL from:
> > 
> > 	/code/tree/C++
> > 
> > to:
> > 
> > 	/cgit.cgi?url=code/tree/C++
> > 
> > but now the path is in the query part not the path part and the escaping
> > rules are different, so "+" translates to " ".
> > 
> 
> Thanks for your quick answer!
> 
> Okay, I understand the problem. I can't remember where do I saw the
> usage of url parameter instead.
> 
> I've switched to this instead :
> $HTTP["host"] == "git.malikania.fr" {
>         server.errorlog         =
> "/var/log/lighttpd/cgit-error.log"                                                                                                                             
>         accesslog.filename      = "/var/log/lighttpd/cgit-access.log"
> 
>         server.document-root = "/usr/local/www/cgit"
>         cgi.assign = ( ".cgi" => "/usr/local/www/cgit/cgit.cgi" )
>         index-file.names     = ( "cgit.cgi" )
> 
>         $HTTP["url"] =~ "^/(.*)\.git" {
>                 url.rewrite-once = (
>                         "^(.*)?$" => "/cgit.cgi/$1"
>                 )
>         }
> }
> 
> I conditionnaly rewrite links only when searching for a directory
> starting with .git (so that the cgit.css is not broken).
> 
> Works correctly now :-)
> 
> Only have to name my repositories with trailing .git though, if you have
> an idea how I can improve that.

With Apache I have:

	RewriteCond %{REQUEST_FILENAME} !-f

so that any request that doesn't match a file gets rewritten and passed
to CGit.  I suspect you can do something similar in lighttpd providing
you don't need to serve anything that is neither a file nor a CGit
request.


More information about the CGit mailing list