Enlever une variable dans l'URL

Consultez la formation URL Rewriting et sites dynamiques de WebRankInfo / Ranking Metrics

petitpolak
Nouveau WRInaute
 
Messages: 22
Inscription: Dim Juil 24, 2005 10:21

Enlever une variable dans l'URL

Message le Mar Juin 03, 2008 11:25

Bonjour,

Je viens demander de l'aide car j'aimerai enlever via un htaccess des variables qui sont dans une adresse.

J'ai essayer de faire fonctionner ce code mais ça ne marche pas :
Code: Tout sélectionner
RewriteRule ^index.php?option=com_content&task=view&id=([0-9]+)&Itemid=75$ index.php?option=com_content&task=view&id=$1&Itemid=75&month=$2&year=$3 [L]

Comme vous le voyez, je veux enlever de l'adresse les variables "month" et "year"

Exemple :
index.php?option=com_content&task=view&id=115&Itemid=75&month=09&year=2006
devient
index.php?option=com_content&task=view&id=115&Itemid=75

Est-il possible de faire cela avec un htaccess ?


cedric_g
WRInaute accro
WRInaute accro
 
Messages: 2019
Inscription: Mer Jan 18, 2006 16:26

Message le Mar Juin 03, 2008 12:18

Bonjour


Ne serait-il pas plus "simple" de rewriter carrément, par exemple :


com_content-view-1-75-2-3.php



(nécessite l'adaptation du code générant les liens vers les pages évidemment)

:roll:


nickargall
WRInaute accro
WRInaute accro
 
Messages: 5319
Inscription: Lun Juin 13, 2005 14:13

Re: Enlever une variable dans l'URL

Message le Mar Juin 03, 2008 12:43

petitpolak a écrit:Bonjour,

Je viens demander de l'aide car j'aimerai enlever via un htaccess des variables qui sont dans une adresse.
Est-il possible de faire cela avec un htaccess ?


Oui, mais ça va être un peu compliqué du fait de la présence du ? et de variables des deux côtés de la règle. Et honnêtement je saurais pas comment le faire.
Gère le en PHP avec traitement de l'URL appelée et redirection 301 par header() de l'URL nettoyée, ca sera sans doute plus simple

petitpolak
Nouveau WRInaute
 
Messages: 22
Inscription: Dim Juil 24, 2005 10:21

Message le Mar Juin 03, 2008 13:06

cedric_g a écrit:Bonjour
Ne serait-il pas plus "simple" de rewriter carrément, par exemple :
com_content-view-1-75-2-3.php

(nécessite l'adaptation du code générant les liens vers les pages évidemment)
:roll:

En faite, j'utilise le CMS Joomla avec OpenSEF (composant pour rewriter les URL) donc les adresses sont rewritées automatiquement.

Le problème c'est que j'ai changé la méthode pour rewriter les URL :
Ancienne méthode : ndd.com/section/categorie/article.html
Nouvelle méthode : ndd.com/section/article.html

Et comme mes anciennes adresses sont avec l'ancienne méthode, lorsqu'une page est appelée avec l'adresse non rewritée mais avec un paramètre en plus (index.php?component........&month=10), une nouvelle adresse rewritée est créée et il y a donc un problème de duplicate content.

Exemple:
index.php?option=com_content&task=view&id=115&Itemid=75
devient
ndd.com/section/categorie/article.html (Bien car ancienne URL et déja créer auparavant)

index.php?option=com_content&task=view&id=115&Itemid=75&month=10
devient
ndd.com/section/article.htm (Pas bien car "nouvelle" adresse pour OpenSEF donc nouvelle adresse rewritée)

C'est pourquoi je veux rediriger
index.php?option=com_content&task=view&id=115&Itemid=75&month=10
vers
index.php?option=com_content&task=view&id=115&Itemid=75

Je précise que j'enlève ce paramètre car je ne l'utilise plus sur mon site mais des pages de ce type sont appelées à partir d'autres sites.

nickargall a écrit:Oui, mais ça va être un peu compliqué du fait de la présence du ? et de variables des deux côtés de la règle. Et honnêtement je saurais pas comment le faire.
Gère le en PHP avec traitement de l'URL appelée et redirection 301 par header() de l'URL nettoyée, ca sera sans doute plus simple

J'avais également pensé à faire cela en PHP mais je voulais d'abord savoir si c'était possible en htaccess donc je suis toujours preneur si quelqu'un sait comment faire.


webmasterlamogere
WRInaute accro
WRInaute accro
 
Messages: 1874
Inscription: Dim Déc 17, 2006 21:08

Message le Mar Juin 03, 2008 13:19

regarde du coté de RewriteCond %{QUERY_STRING} ...

petitpolak
Nouveau WRInaute
 
Messages: 22
Inscription: Dim Juil 24, 2005 10:21

Message le Mar Juin 03, 2008 14:56

webmasterlamogere a écrit:regarde du coté de RewriteCond %{QUERY_STRING} ...

Après plusieurs minutes de codage et de galère j'ai enfin réussi :)

Voila le code
Code: Tout sélectionner
RewriteEngine On

RewriteCond %{QUERY_STRING} ^option=com_content&task=view&id=([0-9]+)&Itemid=75&month=([0-9]+)&year=([0-9]+)$
RewriteRule ^index\.php$ http://www.ndd.com/index.php?option=com_content&task=view&id=%1&Itemid=75 [L,R=301]


Merci à tous pour votre aide :wink:

edit:
Dernière petite question : Peut-on restreindre le chiffre qui est ici -> id=([0-9]+) pour qu'il soit compris entre 0 et 150 par exemple ?


Formation recommandée sur ce thème :

Formation URL Rewriting et sites dynamiques : apprenez comment mettre en place la réécriture d'URL, comment optimiser vos URL et profiter de vos pages dynamiques pour booster votre référencement. Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités