views:

337

answers:

1

I have a cakephp installation in the root of my domain. Now it turns out I need to put another app in there that will reside in a subdirectory. How do I disable the controller/model redirection in cake for just this directory?

The current .htaccess in the root folder looks like this:

<IfModule mod_rewrite.c>
   RewriteEngine on
   RewriteRule    ^$ app/webroot/    [L]
   RewriteRule    (.*) app/webroot/$1 [L]
</IfModule>

I've tried modifying it like this, but to no avail:

<IfModule mod_rewrite.c>
   RewriteEngine on
   RewriteRule    ^bildbank$ /bildbank/ [L]
   RewriteRule    ^$ app/webroot/    [L]
   RewriteRule    (.*) app/webroot/$1 [L]
</IfModule>

I am aware that this is a bit of a hack, but there's no way I can get the second app to play nice with cake.

+3  A: 

The following rule rewrites www.example.com and www.example.com/ to www.example.com/app/webroot/

RewriteRule    ^$ app/webroot/    [L]

This rule rewrites www.example.com/* to www.example.com/app/webroot/*

RewriteRule    (.*) app/webroot/$1 [L]

I would throw out your rule and update the wildcard regex in the last rule, (.*), so that it matches any string which doesn't start with bildbank. Something like this might do the trick:

RewriteRule    ((?!bildbank).*) app/webroot/$1 [L]

This converts the following strings:

cake
cake.htm
cake/test
bilder
bilder.htm
bilder/test
bildbank
bildbank.htm
bildbank/test

.. into:

app/webroot/cake
app/webroot/cake.htm
app/webroot/cake/test
app/webroot/bilder
app/webroot/bilder.htm
app/webroot/bilder/test
bildbank
bildbank.htm
bildbank/test

.. therefore, excluding your bildbank subdirectory.

deizel
Worked like a charm. Thank you!
grapefrukt