On 2009-12-19, at 9:30 AM, Aristotle Pagaltzis wrote:

> * William Wueppelmann <william.wueppelm...@canadiana.ca> [2009-12-18 14:40]:
>> I have the following rules configured for my virtual host in
>> apache:
>> 
>> RewriteCond %{REQUEST_URI} !^/foo/bar
>> RewriteRule ^/(.*)$ /foo/bar/$1 [PT]
> 
> Btw, this is most probably not going to affect your problem, but
> anyway, you likely want to lose the RewriteCond and instead have
> just
> 
>    RewriteRule ^/(.*)$ /foo/bar/$1 [L,PT]

I had hoped it would be simple enough to just us an Alias:

Alias / /MyApp/script/myap_fastcgi.pl/foo/bar/

It looks like the problem is that Apache doesn't handle requests the way I 
expected (it doesn't modify the HTTP request itself when it rewrites the path, 
it seems) so I've had to re-think my strategy. I'm now handling the conditional 
URI interpretation in my app itself: I added a prepare_path method to MyApp.pm 
which checks the config file for a set of host => prefix mappings and prepends 
the required path if the request is coming from a particular host. E.g.:

<prefix>
        http://foo.mydomain.com/        foo/bar
        http://baz.mydomain.com/        baz/bar
</prefix>

So anytime $c-request->base is 'htttp://foo.mydomain.com/' it prepends foo/bar 
to the path before dispatch. It turns out that this is probably a better 
solution, because I need this information in the config file anyway so that I 
know to strip out the leading /foo/bar from URLs generated by the templates 
when called from foo.mydomain.com, and this way, I don't have to worry about my 
apache config and myapp.conf in sync.

-William
_______________________________________________
List: Catalyst@lists.scsys.co.uk
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/
Dev site: http://dev.catalyst.perl.org/

Reply via email to