2009-06-25 6 views
5

J'ai une installation cakephp à la racine de mon domaine. Maintenant, il s'avère que je dois mettre une autre application qui réside dans un sous-répertoire. Comment désactiver la redirection de contrôleur/modèle dans le gâteau pour ce répertoire?Comment désactiver le routage de réécriture CakePHP pour un seul dossier afin qu'il puisse être utilisé comme emplacement pour une deuxième application?

Le .htaccess actuel dans le dossier racine ressemble à ceci:

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

J'ai essayé de le modifier comme ça, mais en vain:

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

Je sais que cela est un peu un hack, mais il n'y a aucun moyen que je puisse obtenir la deuxième application pour jouer bien avec le gâteau.

+1

Avez-vous essayé de mettre la deuxième application à app/webroot/bildbank? – dhofstet

Répondre

4

La règle suivante récrit www.example.com et www.example.com/ à www.example.com/app/webroot/

RewriteRule ^$ app/webroot/ [L] 

Cette règle récrit www.example.com/* www .example.com/app/webroot/*

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

Je jetterais votre règle et mettre à jour le regex générique dans la dernière règle, (.*), afin qu'elle corresponde à une chaîne qui ne commence pas par bildbank. Quelque chose comme cela pourrait faire l'affaire:

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

Ceci convertit les chaînes suivantes:

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

.. dans:

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 

.. donc, à l'exception de votre bildbank sous-répertoire.

+0

A travaillé comme un charme. Je vous remercie! – grapefrukt

12

La réponse de Deizel ne fonctionnait pas pour moi, mais placer la RewriteRule suivante au-dessus des deux règles CakePHP fait:

RewriteRule ^bildbank - [L] 
+0

La réponse de Deizel n'a pas fonctionné pour moi non plus, mais cela a fonctionné. Utilisation d'Ubuntu 10.04 LTS. – ASalazar

+0

Travailler dans mon cas. +1 – Manwal

+0

en cours de fonctionnement ...! écrire ce code immédiatement après RewriteEngine sur –

Questions connexes