如何禁用单个文件夹的CakePHP重写路由,以便它可以用作第二个应用程序的位置?

时间:2009-06-25 14:44:25

标签: .htaccess cakephp

我在域的根目录中安装了cakephp。现在事实证明我需要在那里放置另一个将驻留在子目录中的应用程序。如何在这个目录中禁用蛋糕中的控制器/模型重定向?

根文件夹中的当前.htaccess如下所示:

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

我尝试过像这样修改它,但无济于事:

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

我知道这有点像黑客,但是我无法让第二个应用程序与蛋糕搭配得很好。

2 个答案:

答案 0 :(得分:12)

Deizel的回答对我不起作用,但将以下RewriteRule置于两个cakephp规则之上的确如此:

RewriteRule ^bildbank - [L]

答案 1 :(得分:4)

以下规则将www.example.com和www.example.com/重写为www.example.com/app/webroot /

RewriteRule    ^$ app/webroot/    [L]

此规则将www.example.com/*重写为www.example.com/app/webroot / *

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

我会抛弃你的规则并更新最后一条规则(.*)中的通配符正则表达式,以便它匹配任何不以bildbank开头的字符串。这样的事情可能会起到作用:

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

这将转换以下字符串:

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

..进入:

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

..因此,不包括您的bildbank子目录。