Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 17-03-2010 10:42:53

wazaiodd
Nouveau membre
Date d'inscription: 08-01-2009
Messages: 4

Url Rewrting - Référencement

Bonjour,

Je travaille actuellement sur un site immobilier réalisé avec le Zend Framework version 1.0.2.

Je voudrais donc pour le référencement passer de l'adresse  www.monsite.com/index/annonce?code=xxxx à www.monsite.com/annonce-xxxx-location-appartement-paris

Première étape, j'essaie d'arriver à www.monsite.com/annonce-xxxx, xxxx étant un code passé en paramètre et non des données à aller chercher en BDD.

Je précise que je travaille en local avec MAMP.

J'ai plusieurs contrôleurs dont un IndexController servant pour toute la partie visiteur du site. Dans ce contrôleur, j'ai différentes actions dont une AnnonceAction permettant l'affichage d'une annonce suivant le code passé en paramètre. 

Dans mon bootstrap (index.php), j'ai :

Code:

// Mise en place du controlleur principal
$frontController = Zend_Controller_Front::getInstance();
$frontController->throwExceptions(true);
$frontController->setControllerDirectory('./application/controllers');

//Redefinition de la BaseUrl pour travailler en local
$frontController->setBaseUrl('/monsite/');

// Url rewriting
$frontController->getParam('code');
$router = $frontController->getRouter(); 
$router->addRoute('annonce',new Zend_Controller_Router_Route('annonce-:code', array('controller' => 'Index', 'action' => 'annonce')));
$frontController->setRouter($router);

// C'est parti
$frontController->dispatch();

Je n'ai pas d'erreur mais pas d'url rewriting, l'url est toujours de type www.monsite.com/index/annonce?code=xxxx

EDIT:

En essayant sur une page sans paramètre avec le code suivant :

Code:

// Url rewriting
$router = $frontController->getRouter(); 
$router->addRoute('espaceacheteur',new Zend_Controller_Router_Route('/espace-acheteur', array('controller' => 'Index', 'action' => 'espaceacheteur')));
$frontController->setRouter($router);

Je peux accéder à la page en saisissant l'url www.monsite.com/espace-acheteur au lieu de www.monsite.com/index/espaceacheteur. Or, je souhaite rentrer l'url www.monsite.com/index/espaceacheteur et voir dans la barre d'adresse www.monsite.com/espace-acheteur pour le référencement...

Si vous avez des idées, elles sont les bienvenues.

Merci.

++

Dernière modification par wazaiodd (17-03-2010 11:56:57)

Hors ligne

 

#2 17-03-2010 11:51:25

Zartan
Membre
Date d'inscription: 22-06-2009
Messages: 49

Re: Url Rewrting - Référencement

Bonjour je ne pense pas que cela soit possible de séparer les items avec des '-' en utilisant Router_Route, il faudrait soit utiliser des '/' avec ''annonce/:code' soit utiliser Router_Route_Regex:

Code:

$router->addRoute('annonce',new Zend_Controller_Router_Route_Regex('annonce-(\d+)', array('controller' => 'index', 'action' => 'annonce'), array(1 =>'code')));

Dernière modification par Zartan (17-03-2010 11:54:07)

Hors ligne

 

#3 17-03-2010 12:17:58

wazaiodd
Nouveau membre
Date d'inscription: 08-01-2009
Messages: 4

Re: Url Rewrting - Référencement

Bonjour Zartan,

En effet on ne peut pas séparer les items avec des '-' en utilisant Router_Route.

Maintenant je peux accéder à la page en saisissant l'url /monsite.com/annonce-xxxx mais en réalité je voudrais qu'en rentrant l'adresse habituelle /monsite.com/index/annonce?code=xxxx il s'affiche dans ma barre d'adresses /monsite.com/annonce-xxxx dans un premier temps puis dans un second temps /monsite.com/annonce-xxxx-des-params-en-bdd-suivant-le-code-xxxx

Sinon je ne vois pas l'intérêt de l'url rewriting pour améliorer le référencement google.

Une idée ?

Cordialement,

Merci.

Hors ligne

 

#4 17-03-2010 12:38:55

Zartan
Membre
Date d'inscription: 22-06-2009
Messages: 49

Re: Url Rewrting - Référencement

Pour aller plus loin il faudrait utiliser un plugin. L'avantage du plugin c'est qu'on récupère les paramètres, le  controller  et l'action. A priori on peut modifier l'url à la volée soit en utilisant $router->setGlobalParam() ou $request->setParams().

http://framework.zend.com/manual/fr/zen … ugins.html


Ca commencerait comme cela :

Code:

<?php 
class MonApp_Controller_Plugins_Annonce extends Zend_Controller_Plugin_Abstract 
{
  public function routeStartup(Zend_Controller_Request_Abstract $request) 
  {
      
          $params = $request->getParams();
        $session = Zend_Registry::get('session') ;    
        $router = Zend_Registry::get('Zend_Router') ;

Après c'est à vous de jouer smile

J'ai écrit routeStartup() mais éventuellement ce serait plus facile avec routeShutdown(), ça dépend de ce que l'on veut faire exactement.

Dernière modification par Zartan (17-03-2010 12:51:50)

Hors ligne

 

#5 17-03-2010 13:20:58

wazaiodd
Nouveau membre
Date d'inscription: 08-01-2009
Messages: 4

Re: Url Rewrting - Référencement

D'accord je vais essayer de regarder de ce côté là alors.

Merci.

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages