Intégrer facilement un blog à votre application Symfony – WordPress, Drupal, Joomla ….

Vous avez sûrement besoin d’un blog pour faire vivre votre site internet développé avec Symfony. Symfony 2 et son système de Bundle permet d’intégrer des blogs directement dans votre application sans passer par des CMS de gestion de contenus mais ceux-ci sont loin d’être aussi poussés que WordPress ou autre.

Nous allons donc voir ici comment faire pour intégrer un tel système dans votre application Symfony.

1. Première Solution

La première solution possible pourrait être de passer par des sous-domaines du type http://blog.monsite.com mais cette solution est plutôt handicapante pour le référencement. En effet, un sous-domaine est interprété comme un site à part entière par les moteurs de recherche et votre site ne profitera pas du contenu de votre blog pour son référencement.

2. Deuxième Solution

La deuxième solution serait de passer au travers de l’Url Rewriting imposé par Symfony afin d’avoir un blog situé a l’adresse http://www.monsite.com/blog, C’est cette solution que nous choisirons.

Comme vous le savez sûrement déjà, Symfony intègre une gestion du routing dans vos application et il est donc assez difficile d’obtenir l’url voulue pour une fonctionnalité externe à Symfony.

Toute application Symfony dispose d’un dossier « web » qui va contenir tous les fichier disponibles à l’utilisateur.

Placez dans celui-ci le dossier blog qui va contenir tous les fichiers de votre CMS.

Ouvrez ensuite votre fichier web/.htaccess qui devrait ressembler à ceci :

[php]
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ app.php [QSA,L]
</IfModule>
[/php]

Puis ajoutez-y la ligne suivante, juste après l’activation de l’Url Rewriting :

[php]
RewriteRule ^blog/(.*)$ blog/$1 [PT]
[/php]

Votre fichier .htaccess devrait maintenant ressembler à celui-ci :

[php]
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^blog/(.*)$ blog/$1 [PT]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ app.php [QSA,L]
</IfModule>
[/php]

Le flag [PT] signifie Pass Through, en effet, toutes les requêtes commençant par http://www.monsite.com/blog passeront au travers des traitements de l’Url Rewriting et seront redirigées vers le dossier blog présent dans le dossier web, permettant ainsi à votre CMS de fonctionner correctement avec ses propres règles d’Url Rewriting.

Cette solution à été testée et fonctionne correctement sur Symfony 2 et Symfony 1.4.

Steeve Audoli – Web Developer

Ce contenu a été publié dans Symfony, Techno par Steeve, et marqué avec , , , . Mettez-le en favori avec son permalien.

A propos de Steeve

Développeur Web chez Web Omega, je suis passionné de nouvelles technologies et plus précisément à tout ce qui touche de près ou de loin le développement. Agé de 23 ans, je suis actuellement étudiant ingénieur à Supinfo International University. Cette formation me permet d’acquérir un savoir-faire tant au niveau du management de personnel que de la gestion de projet. La multitude de projet que je mène chaque jour me permet d’acquérir une connaissance des CMS Prestashop et Wordpress ainsi que du Framework Symfony2. Expérience que j’ai à cœur de partager avec la communauté au travers d’articles présentant astuces et conseils. Du côté des loisirs, je suis très ouvert aux activités en plein air, ainsi qu’aux nouvelles technologies, car oui avant de faire partie intégrante de mon métier, celles-ci sont avant tout une passion et un loisir. C’est à peu près tout ce que vous avez à savoir sur moi. A bientôt sur notre blog !

6 thoughts on “Intégrer facilement un blog à votre application Symfony – WordPress, Drupal, Joomla ….

  1. Bonjour,

    J’aimerai faire le contraire. Tout ce qui ne commence pas par quelque chose de connu (par exemple /app) soit redirigé dans le wordpress (qui est par exemple en /wp) mais que le répertoire wp n’apparaisse pas dans l’url. En résumé que http://www.monsite.com atterrisse dans le wp et que http://www.monsite.com/app soit mon appli symfony et tout ca uniquement avec des rewrite… Est-ce possible???

    Merci

    • Pour cela je pense qu’il faudrait faire l’inverse, mettre l’appli Symfony a la racine du blog et faire le même processus que celui présenté dans l’article pour laisser passer tout ce qui commence par /app

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.