|
Voir le sujet précédent :: Voir le sujet suivant
|
| Auteur |
Message |
| |
|
stephenpuig Nouveau WRInaute
Inscrit le: 19 Juin 2007 Messages: 4 Localisation: Toulon
|
Posté le : Lun Fév 18, 2008 12:35 Sujet du message: 2 adresses vers 1 seules |
|
|
Bonjour à tous,
Voilà je suis sur une boutique Oscommerce et il y a quelques temps j'ai fait de l'Url rewritting pour mes fiches produits
Ex:
| Code: |
| RewriteRule ^(.*)-([0-9]+)a.php$ product_info.php?products_id=$2 |
ce qui donnait www.mon-domaine.fr/nom-de-mon-produit-4545.php (4545 étant l'id de mon produit) au lieu de www.mon-domaine.fr/product_info.php?products_id=4545
Le problème c'est qu'il n'y a pas longtemps j'ai du changer ma méthode de réécriture (pour différentes raisons) avec cette méthode:
| Code: |
| RewriteRule ^(.*)-p-(.*).html$ product_info.php?products_id=$2&%{QUERY_STRING} |
ce qui donne: www.mon-domaine.fr/nom-de-mon-produit-p-4545.html (4545 étant l'id de mon produit)
Ma question est toute simple: Comment rediriger mes anciennes urls réécrites (www.mon-domaine.fr/nom-de-mon-produit-4545.php) vers mes nouvelles urls réécrites (www.mon-domaine.fr/nom-de-mon-produit-p-4545.html)
j'ai essayé de faire:
| Code: |
| RewriteRule ^(.*)-p-([0-9]+).html$ (.*)-([0-9]+).php |
mais ça ne marche pas
Quelqu'un saurait il comment faire ??
merci beaucoup. |
|
| |
|
 |
Vap WRInaute accro

Inscrit le: 17 Juin 2007 Messages: 1046 Localisation: Bouches-du-Rhône
|
Posté le : Lun Fév 18, 2008 14:09 Sujet du message: 2 adresses vers 1 seules |
|
|
Il faut utiliser une redirection 301 de l'ancienne adressse html vers la nouvelle :
| Code: |
RewriteRule ^(.*)-([0-9]+).html$ $1-p-$2.html [R=301]
|
|
|
| |
|
 |
stephenpuig Nouveau WRInaute
Inscrit le: 19 Juin 2007 Messages: 4 Localisation: Toulon
|
Posté le : Lun Fév 18, 2008 15:06 Sujet du message: 2 adresses vers 1 seules |
|
|
Salut Vap,
Merci pour ta réponse.
Tout mon problème est qu'en fait je veut a la fois rediriger mon ancienne adresse réécrite vers ma nouvelle adresse réécrite, mais aussi bien évidemment faire la réécriture.
je m'explique:
| Code: |
#Réécriture de l'url d'oscommerce
RewriteRule ^(.*)-p-(.*).html$ product_info.php?products_id=$2&%{QUERY_STRING}
# Rédirectionnement de mon ancienne url réécrite vers ma nouvelle
RewriteRule ^(.*)-p-(.*).html$ $1-$2.php [R=301] |
Si je fait comme cela ça ne marche toujours pas  |
|
| |
|
 |
Vap WRInaute accro

Inscrit le: 17 Juin 2007 Messages: 1046 Localisation: Bouches-du-Rhône
|
Posté le : Lun Fév 18, 2008 18:57 Sujet du message: 2 adresses vers 1 seules |
|
|
As tu essayé ce que je propose?
Il s'agit de mettre les deux règles suivantes a la place de celles que tu as mises :
| Code: |
RewriteRule ^(.*)-([0-9]+).html$ $1-p-$2.html [R=301]
RewriteRule ^(.*)-p-(.*).html$ product_info.php?products_id=$2&%{QUERY_STRING}
|
La première redirige les anciennes html vers les nouvelles. La deuxième interprete les nouvelles par du php.
Il faut la premiere redirection, sinon tu auras un dupplicate content. |
|
| |
|
 |
KOogar WRInaute accro

Inscrit le: 16 Nov 2004 Messages: 2910 Localisation: Bangalore +3h30
|
Posté le : Mar Fév 19, 2008 6:22 Sujet du message: 2 adresses vers 1 seules |
|
|
vap, pour une redirection en .htaccess il te faut une condition... sinon tu fais de la réécriture. Tu captures tes variables dans la condition et tu les retournes dans l'url physique.
so, en PHP ca va + vite à construire et c'est le genre de snippet qu'on aime bien avoir sous la main:
| Code: |
<?php $rel = strstr ($url,'-p-');
if($rel != FALSE) {
header("Status: 301 Moved Permanently");
header("Location: http://".$_SERVER['HTTP_HOST']."/".$nom_produit."-".$id.".html");
} ?> |
|
|
| |
|
 |
| |
|
|