Enlever une variable dans l'URL

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

petitpolak
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 22
Inscription: 24 Juil 2005

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: 3466
Inscription: 18 Jan 2006

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: 6343
Inscription: 13 Juin 2005

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
Nouveau WRInaute
 
Messages: 22
Inscription: 24 Juil 2005

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 passionné
WRInaute passionné
 
Messages: 1874
Inscription: 17 Déc 2006

Message le Mar Juin 03, 2008 13:19

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

petitpolak
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 22
Inscription: 24 Juil 2005

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 ?


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

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 :

Consultez la description détaillée des produits ou services de Google suivants : Google goo.gl

  • Calcul du nombre de backlinks
    Cet outil vous permet d'analyser en détails la "popularité" de votre site sur Google. En plus du nombre de liens pris en compte par Google, il calcule le pourcentage de liens internes parmi tous les liens, et il affiche les premières URL trouvées.
  • Transformer des citations en liens
    Cet outil vous permet de trouver des pages citant votre site mais ne faisant pas (encore) de lien. Il suffira parfois d'un simple mail pour transformer cette simple citation en lien (backlink).


Qui est en ligne

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