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

gra*_*ukt 5 .htaccess cakephp

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

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

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

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

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

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

GaZ*_*GaZ 12

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

RewriteRule ^bildbank - [L]
Run Code Online (Sandbox Code Playgroud)


dei*_*zel 4

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

RewriteRule    ^$ app/webroot/    [L]
Run Code Online (Sandbox Code Playgroud)

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

RewriteRule    (.*) app/webroot/$1 [L]
Run Code Online (Sandbox Code Playgroud)

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

RewriteRule    ((?!bildbank).*) app/webroot/$1 [L]
Run Code Online (Sandbox Code Playgroud)

这将转换以下字符串:

cake
cake.htm
cake/test
bilder
bilder.htm
bilder/test
bildbank
bildbank.htm
bildbank/test
Run Code Online (Sandbox Code Playgroud)

.. 进入:

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
Run Code Online (Sandbox Code Playgroud)

..因此,排除您的bildbank子目录。