2009-06-25 3 views
5

Mam instalację cakephp w katalogu głównym mojej domeny. Teraz okazuje się, że muszę umieścić tam inną aplikację, która będzie znajdować się w podkatalogu. Jak wyłączyć przekierowanie kontrolera/modelu w ciastku tylko dla tego katalogu?Jak wyłączyć routing przepisywania CakePHP dla pojedynczego folderu, aby mógł on służyć jako lokalizacja dla drugiej aplikacji?

Obecny .htaccess w folderze głównym wygląda następująco:

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

Próbowałem modyfikując je tak, ale bezskutecznie:

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

Zdaję sobie sprawę, że jest to trochę hack, ale nie ma mowy, żebym mógł dostać drugą aplikację, by grać ładnie z ciastem.

+1

Czy spróbować umieścić drugą aplikację do app/webroot/bildbank? – dhofstet

Odpowiedz

4

Poniższa reguła przepisuje www.example.com i www.example.com/ do www.example.com/app/webroot/

RewriteRule ^$ app/webroot/ [L] 

Zasada ta przepisuje www.example.com/* na www .example.com/app/webroot/*

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

chciałbym wyrzucić swoją regułę i zaktualizować regex wieloznaczny w ostatniej reguły (.*), tak, że każdy ciąg, który nie rozpoczyna się bildbank. Coś takiego może załatwić sprawę:

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

ten konwertuje następujące ciągi:

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

.. do:

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 

.. Dlatego też, z wyjątkiem podkatalogu bildbank.

+0

Pracował jak urok. Dziękuję Ci! – grapefrukt

12

odpowiedź Deizel za nie działa dla mnie, ale umieszczając następujące RewriteRule powyżej dwóch CakePHP zasad zrobił:

RewriteRule ^bildbank - [L] 
+0

Odpowiedź Deizel też mi nie pasowała, ale tak się stało. Używanie Ubuntu 10.04 LTS. – ASalazar

+0

Praca w moim przypadku. +1 – Manwal

+0

działa ...! napisz ten kod zaraz po napisaniu RewriteEngine –

Powiązane problemy