2009-06-25 6 views
5

Etki alanımın kökünde bir cakephp yüklemem var. Şimdi bir alt dizinde yer alacak başka bir uygulama koymam gerekiyor. Sadece bu dizin için pastadaki denetleyici/model yönlendirme nasıl devre dışı bırakılır?CakePHP yeniden yazma yolunu tek bir klasör için nasıl devre dışı bırakabilirim, böylece ikinci bir uygulama için konum olarak kullanılabilir?

kök klasöründe geçerli .htaccess şuna benzer:

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

ben böyle değiştirerek denedim, ama boşuna:

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

bu olduğunun farkındayım Bir hack, ama kek ile güzel oynamak için ikinci uygulamayı elde etmenin hiçbir yolu yoktur.

+1

uygulama boyutunun/Webroot'un/bildbank ikinci uygulamayı koymak çalıştı mı? – dhofstet

cevap

4

aşağıdaki kural Bu kural www www.example.com/* yeniden yazar

RewriteRule ^$ app/webroot/ [L] 

www.example.com/app/webroot/ için www.example.com ve www.example.com/ yeniden yazar .example.com/uygulama/Webroot'un/*

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

senin kural dışarı atmak ve onu bildbank ile başlamaz herhangi bir dize eşleşecek şekilde, son kural, (.*) joker regex günceller. Böyle bir şey hile yapabilir:

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

Bu aşağıdaki dizeleri dönüştürür:

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

.. içine:

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 

.. bu nedenle, bildbank alt dizin hariç.

+0

Bir çekicilik gibi çalıştım. Teşekkür ederim! – grapefrukt

12

Deizel cevabı benim için çalışır, ancak iki CakePHP'de kurallara yukarıdaki aşağıdaki RewriteRule yerleştirerek değil mi:

RewriteRule ^bildbank - [L] 
+0

Deizel'in cevabı benim için işe yaramadı, ama bu yaptı. Ubuntu 10.04 LTS'yi Kullanma. – ASalazar

+0

Benim durumumda çalışmak. +1 – Manwal

+0

çalışıyor ...! bu kodu RewriteEngine açıldıktan hemen sonra yazınız. –

İlgili konular