Un Wordpress dans CakePHP

Par Guiguiwuip, il y a 14 ans


Bonjour,

Je développe actuellement une solution sous CakePHP et j'ai besoin d'y ajouter un blog Wordpress.
J'ai créer un nouveau répertoire dans 'app/webroot/' appelé 'blog' avec wordpress dedans ce qui donne 'app/webroot/blog'.
Pas de problème avec Wordpress en lui même.

Mais j'obteiens une url de la forme 'http://monsite.com/app/webroot/blog/' et je voudrais 'http://monsite.com/blog/'. J'essaye donc sans résultats de modifier le .htaccess avec l'aide de Google, mais les solutions que je trouve ne fonctionnent pas. Je suis bloqué à ceci, qui ne me retourne rien que je demande 'http://monsite.com/blog/'.

<IfModule mod_rewrite.c>
   RewriteEngine on
    RedirectMatch temp ^/blog/wp-admin$ http://localhost/CakePHP//blog/
    RewriteRule ^blog$ blog/ [L]
    RewriteRule ^blog/wp-admin$ blog/wp-admin/ [L]
    RewriteRule ^$ app/webroot/ [L]
    RewriteRule (.*) app/webroot/$1 [L]
</IfModule>

Quelqu'un peut-il m'aider ? Je crois d'ailleurs que grafikart.fr est construit sur ce principe non ?

Merci d'avance !

11 réponses

Y'a Bmz, il y a 10 ans

J'ai une question en rapport avec Cakephp et wordpress alors je me permet de poser ma question ici.
est-il possible d'utiliser l'environnement cakephp sur un site wordpress ?
Merci d'avance

Twigvred, il y a 10 ans

Bonjour Y'a Bmz,
Je ne suis pas expert en la matière, mais vu les échanges dans les messages précédents, cela peut probablement se faire. LPlus haut il dit qu'il a créé un site avec Cakephp et a raccordé un blog Wordpress avec. Pourtant, après il dit que le Cakephp ne représente qu'une petite partie du travail. Donc, il est possible que le reste constitue des extensions Wordpress. Je ne sais pas trop, mais je dis ça comme ça. Je ne suis que débutant encore et j'essaie de faire mes propres analyses.

GentlemanOwl, il y a 14 ans

Salut,

Utilise le fichier routes.php dans /app/Config/ :

Router::connect(
        '/blog/*',
        '/app/webroot/blog/index.php'
    );

Et pour le wp admin :

Router::connect(
        '/blog/admin/*',
        '/app/webroot/blog/wp-admin/index.php'
    );

Je ne l'ai pas testé avec Wordpress mais je pense que cela devrait fonctionner.

Guiguiwuip, il y a 14 ans

Je viens de tester ta proposition, merci. Cake ne fait qu'une partie du travail :D !
Quand je rentre l'url 'monsite.com/blog', cakephp me redirige vers 'monsite.com/app/webroot/blog/'. Hors je voudrais conserver l'url simple '/blog'.

[EDIT]
Ah, et puis j'ai cette erreur fatale quand je souhaite accéder au reste du site (monsite.com ou monsite.com/quelquechose) :
"Fatal error: Unsupported operand types in \lib\Cake\Routing\Router.php on line 298"

GentlemanOwl, il y a 14 ans

Je viens de faire un test de mon coté en effet le routing bug mais par contre en installant le wordpress pour faire des tests dans le dossier webroot/blog/.
J'obtient une url de ce type : http://localhost/sayHello/blog/bonjour-tout-le-monde/ sans url rewriting.

Guiguiwuip, il y a 14 ans

Ça marche en partie pour moi également.
Mais j'ai un gros soucis dans la config de wordpress.

Ça vient du htacces ?

Guiguiwuip, il y a 14 ans

Sans url rewriting du côté de Cakephp, et lorsue je demande monsite.com/blog, je suis redirigé vers monsote.com/app/webroot/blog/ et non monsite.com/blog.
Je ne sais pas si ça peut venir de mon .htacces qui se trouve au même niveau que dans à la racine, il contient :

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

Je n'ai aucune connaissance en htacces mais je crois comprendre qu'il demande de rediriger vers app/webroot pour toute demande, est-ce qu'il y a un moyen de simplifier l'url pour /blog ?

Merci encore pour ton aide :)

GentlemanOwl, il y a 14 ans

Si tu mets ton dossier blog au même niveau que le htaccess et que tu le modifie comme ceci :

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

Je ne suis pas sur de tout ça. Je l'ai vu en cours assez rapidement donc il faudra peut être bidouiller.

GentlemanOwl, il y a 14 ans

J'ai fais un test rapide de mon coté ça marche.

GentlemanOwl, il y a 14 ans

Oui, en fait le index.php n'a pas lieu d'être.

Voici la correction :

RewriteRule ^blog/(.*)$ blog/$1 [QSA,L]
Guiguiwuip, il y a 14 ans

Tout semble marcher à merveille ! Un énorme merci à toi ! :)