Enlever une variable dans l'URL

Nouveau WRInaute
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:
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 ?
 
WRInaute accro
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:
 
WRInaute accro
petitpolak a dit:
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
 
Nouveau WRInaute
cedric_g a dit:
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 dit:
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.
 
Nouveau WRInaute
webmasterlamogere a dit:
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:
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 ?
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut