Aller au contenu

Sujets conseillés

Posté

Bonjour,

Je posséde des adresses url de ce type :

http://www.site.com/cristal-dur.php?page=2∏=cristal%20dur%20Rallonge%20USB

Donc j'ai créé un fichier htaccess pour réécrire ces urls de cette facon :

RewriteEngine on
RewriteRule ^cristal-dur-([0-9a-zA-Z-]+)-([0-9a-zA-Z-]+)\.html$ /cristal-dur.php?page=$1∏=$2 [L]

Cela ne fonctionne pas et ne réécrit pas mes urls ?

Peut etre qu'il y a une erreur dans mon code de réécriture ?

Merci de votre aide.

Posté

Essaie ceci:

RewriteRule ^cristal-dur-([0-9a-zA-Z-]+)-([^\.]+)\.html$  /cristal-dur.php?page=$1&prod=$2  [L]

Jean-Luc

Posté

Bonjour,

C'est une erreur courante de penser que le htaccess réécrit les urls.

C'est faux ;)

Le htaccess interprette les urls qui entrent sur le serveur (donc les urls que tapent les internautes), et non pas les urls qui sont déjà sur ton site.

Il te faut donc reprendre les urls qui se trouvent dans ton code, et les réécrire, pour qu'elles correspondent à ce que tu veux ;)

Ensuite, donc, ces urls seront 'sur ton site', il va falloir quand quelqu'un clic dessus, qu'elles soient interprétées par le serveur. C'est à ce moment là, et à celui là seulement, qu'intervient le fichier htaccess :)

Nico.

Posté

Si je comprends mes urls doivent être du type ci dessous, j'ai remplacé le & entre les 2 variables par un -

http://www.site.com/cristal-dur.php?page=2-prod=cristal%20dur%20Rallonge%20USB

Et après je fais quoi je suis un peu perdu là

Posté (modifié)

en fait c'est pas les rewrite rules qui vont transformer tes urls actuelles (http://www.site.com/cristal-dur.php?page=2∏=cristal%20dur%20Rallonge%20USB) en jolies url, mais pas l'inverse ;)

si on se base sur ton rewriting:

RewriteRule ^cristal-dur-([0-9a-zA-Z-]+)-([^\.]+)\.html$  /cristal-dur.php?page=$1∏=$2  [L]

les liens sur ton site devront avoir un format d'adresse de ce type :

h**p://www.site.com/cristal-dur-2-cristal_dur_Rallonge_USB.php

quand l'internaute cliquera sur ce joli lien, il verras toujours cette jolie url, mais le script appele sera:

h**p://www.site.com/cristal-dur.php?page=2∏=cristal_dur_Rallonge_USB

Pour info :

autant sur la recup du parametre page tu n'aura pas trop de souci pour le recuperer (format numerique), mais pour ton parametre prod il faut penser a bien l'encoder (pas de tiret et pas d'espace ;)) pour se simplifier la vie :whistling:

EDIT: salete de liens auto :evil:

Modifié par steph29
Posté

Pour l'encodage de l'url, j'ai fais ceci penses tu que cela sois correcte :

$title2 = strtolower($title); 
$title2 = strtr($title, " ,.'àáâãäçèéêëìíîïñòóôõöùúûüýÿÀÁÂÃÄÇÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝ",
"____aaaaaceeeeiiiinooooouuuuyyAAAAACEEEEIIIINOOOOOUUUUY");

Posté (modifié)

Suite à vos conseils, j'ai donc renommée mes urls de cette façon :

http://www.site.com/cristal-dur.php?page=36∏=curl-grand-barrette

et mon code htaccess :

RewriteRule ^cristal-dur-([0-9a-zA-Z-]+)-([^\.]+)\.html$  /cristal-dur.php?page=$1∏=$2  [L]

j'ai essayé cela également :

RewriteRule ^cristal-dur-([0-9]+)-([a-zA-Z]+)\.html$  cristal-dur.php?page=$1∏=$2  [L]

Cependant quand je tape cette url :

http://www.site.com/cristal-dur-36-curl-grand-barrette.html

mon htaccess ne fonctionne pas et me signale Redirection de page incorrecte

Le htaccess me semble correcte ? Je deviens fou ! J'ai retourné le htaccess dans tous les sens mais en vain.

Si quelqu'un voit le soucis les pros de l'url rewriting ;-)

Quelqu'un peut il me dire si mon raisonnement est bon ou pas ?

PS : Je suis chez l'hébergeur 1and1 je sais pas si cela peut influer.

Modifié par doomer2
Posté

Merci de vos aides, le probléme était de placer ces conditions tout en haut de mon htaccess maintenant cela fonctionne, je comprends pas pourqoui cela ne fonctionnait pas au milieu de mon htaccess mais bon cela fonctionne nickel.

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...