Как отключить маршрутизацию перезаписи 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>

Я знаю, что это немного хак, но я никак не могу заставить второе приложение хорошо играть с тортом.


person grapefrukt    schedule 25.06.2009    source источник
comment
Вы пробовали поставить второе приложение в app/webroot/bildbank?   -  person dhofstet    schedule 25.06.2009


Ответы (2)


Следующее правило заменяет 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.

person deizel    schedule 25.06.2009
comment
Работал как шарм. Благодарю вас! - person grapefrukt; 26.06.2009

Ответ Деизеля не сработал для меня, но сработало следующее правило RewriteRule над двумя правилами cakephp:

RewriteRule ^bildbank - [L]
person GaZ    schedule 02.12.2010
comment
Ответ Дейзеля у меня тоже не сработал, но это сработало. Использование Ubuntu 10.04 LTS. - person ASalazar; 14.12.2012
comment
В моем случае работает. +1 - person Manwal; 29.01.2014
comment
работающий...! напишите этот код сразу после RewriteEngine на - person Pragnesh Rupapara; 26.01.2015