[Catalyst] request uri under lighttpd/fastcgi contains extra slash
Kieren Diment
diment at gmail.com
Fri Nov 9 21:15:07 GMT 2007
On 10 Nov 2007, at 03:48, Andy Grundman wrote:
>
> On Nov 9, 2007, at 11:26 AM, Jim Spath wrote:
>
>> When I run Catalyst out of a non root webserver location, e.g. /
>> myapp, $c->request->uri has an extra slash after the base url.
>>
>> http://mydomain.com/myapp//
>> http://mydomain.com/myapp//some/action
>>
[snip]
>> FYI, my lighttpd fastcgi config looks like:
>> $HTTP["url"] =~ "^/myapp/(?!static)" {
>> fastcgi.server = (
>> "/myapp" => (
>> "MyApp" => (
>> ...
>> [snip]
>> and I am currently running Catalyst 5.7007. I'd prefer a solution
>> that doesn't involve upgrading Catalyst... if that is possible.
>
> Please at least test your app with the latest Catalyst version.
> There's a reason we put out new releases, to fix bugs like this
> one. :)
>
> I just ran our test suite against lighttpd 1.4.18 and the latest
> Catalyst with a non-root path and it is fully passing.
Andy and I spent a good long time sorting this one out for Catalyst
5.7004 so you should be right not to upgrade.
I think the problem is that your config is missing this rewrite rule:
url.rewrite = ( "myapp\$" => "myapp/" )
Here's the lighttpd non-root config from the catalyst test suite, use
this as a basis to fix your issue:
my $conf = <<"END";
# basic lighttpd config file for testing fcgi+catalyst
server.modules = (
"mod_access",
"mod_fastcgi",
"mod_rewrite",
"mod_accesslog"
)
server.document-root = "$docroot"
server.errorlog = "$docroot/error.log"
accesslog.filename = "$docroot/access.log"
server.bind = "127.0.0.1"
server.port = $port
# Work around inability to hit http://localhost/deep/path
# without a trailing slash
url.rewrite = ( "deep/path\$" => "deep/path/" )
# catalyst app specific fcgi setup
fastcgi.server = (
"/deep/path" => (
"FastCgiTest" => (
"socket" => "$docroot/test.socket",
"check-local" => "disable",
"bin-path" => "$docroot/TestApp/script/
testapp_fastcgi.pl",
"min-procs" => 1,
"max-procs" => 1,
"idle-timeout" => 20
)
)
)
END
More information about the Catalyst
mailing list