Jump to content

Réécriture pour nouvel écran


Recommended Posts

Bonjour,

 

J'ai créé un écran recette.

Quand je clique sur une recette j'ai un lien www.monsite.com/recette.php?id_recette=1.

Que faut il changer pour avoir www.monsite.com/1-'titre-recette1'.html ?

sachant que le titre-recette1 est le nom de la recette 1.

Cela se fait il uniquement dans le .htaccess j'ai essayé pas mal de choses dans ce fichier mais je n'ai rien obtenu de concret.

J'espère que ma demande est claire !!!

 

 

Merci de votre aide et de vos explications.

Valérie

Link to comment
Share on other sites

Bonsoir

Il faut activer l'url rewritting et nommer les urls comme bon vous semble ou laisser presta les générer automatiquement je pense.

Bonjour Zaar,

 

J'ai bien activé la réécriture des urls.

Apparemment cela ne suffit pas à presta pour les gérer.

Si tu as une autre idée ou quelqu'un d'autre, merci de votre aide.

Link to comment
Share on other sites

Bonjour,

cela devrait normalement être suffisant pour ne plus avoir d'adresse du type www.monsite.com/recette.php?id_recette=1.

mais il faut que ton hébergeur propose l'url rewritting sur ton serveur, ce qui est a peu près le cas pour tous les hébergeurs aujourd'hui.

Chez qui es tu hébergé?

Bonjour,

 

Pas de souci de ce coté.

J'ai presque trouvé. La redirection se fait mais j'aimerais la personnaliser avec le type de recette devant.

www.monsite.com/Desserts/1-'titre-recette1'.html

 

J'ai crée une fonction dans la classe Link

	public function getRecetteLink($id_recette, $alias = null, $category = null, $id_lang = null)
	{
		global $cookie;

		if (is_object($id_recette))
		{		
			$link = '';
			if ($this->allow == 1)
			{
				$link .= _PS_BASE_URL_.__PS_BASE_URI__.$this->getLangLink((int)$id_lang);
				
				if (isset($id_recette->category) && !empty($id_recette->category))
					$link .= $id_recette->category.'/';

				$link .= (int)$id_recette->id.'/'.(is_array($id_recette->link_rewrite) ? $id_recette->link_rewrite[(int)$cookie->id_lang] : $id_recette->link_rewrite);

				$link .= '.html';
			}
			else 
				$link .= _PS_BASE_URL_.__PS_BASE_URI__.'recette.php?id_recette='.(int)$id_recette->id;

			return $link;
		}
		elseif ($alias)
		{
			$link = '';
			if ($this->allow == 1)
			{
				$link .= _PS_BASE_URL_.__PS_BASE_URI__.$this->getLangLink((int)$id_lang);
				
				if ($category)
				$link .= $category.'/'.(int)$id_recette.'/'.$alias;
						
				$link .= '.html';
			}
			else
				$link .= _PS_BASE_URL_.__PS_BASE_URI__.'recette.php?id_recette='.(int)$id_recette;

			return $link;
		}
		else
			return _PS_BASE_URL_.__PS_BASE_URI__.'recette.php?id_recette='.(int)$id_recette;
	}

Je l'appelle dans mon fichier recettes.tpl

<a href="{$link->getRecetteLink($recette.id_abeille_recette, $recette.link_rewrite, $category.link_rewrite)|escape:'htmlall':'UTF-8'}" title="{$product.name|escape:'htmlall':'UTF-8'}"><u>{$recette.titre|escape:'htmlall':'UTF-8'}</u></a><br>

Cela génère bien un lien de type

<a title="Quiche lorraine" href="http://www.monsite.com/Entrees/1/quiche-lorraine.html">

Le contenu de mon .htaccess concernant la recette est :

RewriteRule ^([0-9]+)/[a-zA-Z0-9-]*.html /recette.php?id_recette=$1 [QSA,L]
RewriteRule ^[a-zA-Z0-9-]*/([0-9]+)-[a-zA-Z0-9-]*.html /product.php?id_product=$1 [QSA,L]

Et le résultat quand je clique sur le aHref est :

http://www.monsite.com/1/quiche-lorraine.html

et non ça que j'espère voir :

http://www.monsite.com/Entrees/1/quiche-lorraine.html

par contre le contenu s'affiche bien ???

Où est mon erreur svp ???

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...