Problème d'URL rewriting via htaccess

Nouveau WRInaute
Bonjour à tous,

Je suis en train de remettre en place mon site et j'ai vu qu'il serait intéressant que certains URL soient ré-écris.
Mais je rencontre surement un problème peu courant.

Je veux réécrire l'url

http://www.hardware-specs.net/index.php ... &Itemid=29

en

http://www.hardware-specs.net/specifica ... /index.php

Donc j'ai écris cette règle la dans mon .htaccess

RewriteRule ^specifications/processeurs/index\.php$ index.php?option=com_specifications&Itemid=29 [R]

Mais rien ne se passe sur le site. L'url reste le même, rien n'a changé :(.
J'ai regardé la plupart des topics concernant ce type de problème mais cela ne m'a malheureusement pas aidé :(

Si quelqu'un peut m'aider car la, j'avoue être vraiment à court d'idée :roll:

Par avance merci de votre patience et de votre aide :wink:

Cdt
 
WRInaute passionné
l'url rewriting permet d'appeler une page différemment mais ne fait pas de redirection automatique ou de modification des liens qui pointent vers l'ancien nom.
plus d'infos ici : -http://www.urlrewriting.fr/article-08,07,17,Eti@-Redirection-9.html
 
Nouveau WRInaute
webmasterlamogere a dit:
l'url rewriting permet d'appeler une page différemment mais ne fait pas de redirection automatique ou de modification des liens qui pointent vers l'ancien nom.
plus d'infos ici : -http://www.urlrewriting.fr/article-08,07,17,Eti@-Redirection-9.html

d'accord donc vous me conseillez de garder la redirection 301 pour éviter d'être sanctionné par Google car double page sur le site.

En fait je me suis mal exprimé.
Mon souhait serait que quand je mets l'url suivant dans la barre d'adresse de mon navigateur : http://www.hardware-specs.net/index.php ... &Itemid=29 l'url se transforme en http://www.hardware-specs.net/specifica ... /index.php pour éviter d'avoir un URL rempli de caractères spéciaux sivous voyez ce que je veux dire.

Par avance, merci

Cdt


EDIT :

J'ai du nouveau :

J'ai tout simplement essayé avec : RewriteRule specifications/processeurs/index.php index.php?option=com_specifications&Itemid=296 [R=301]

Seul souci ca marche quand je tape http://www.harware-specs.net/specificat ... /index.php l'URL devient cela : http://www.hardware-specs.net/index.php ... &Itemid=29


:cry: :cry: malheureusement, c'est l'inverse que je souhaite.
Donc j'inverse bettement dans le htaccess mais la, rien ne se passe :(

incompréhensible :(
 
WRInaute passionné
il faut utiliser cette syntaxe :
Code:
RewriteEngine on
RewriteCond %{QUERY_STRING} ^option=com_specifications&Itemid=29$
RewriteRule ^index\.php$ /specifications/processeurs/index.php? [R=301,L]
s'il y a également une règle de réécriture, il faut suivre les conseils donnés ici pour éviter que ça boucle : -http://www.urlrewriting.fr/article-08,07,17,Eti@-Redirection-9.html
 
Nouveau WRInaute
webmasterlamogere a dit:
il faut utiliser cette syntaxe :
Code:
RewriteEngine on
RewriteCond %{QUERY_STRING} ^option=com_specifications&Itemid=29$
RewriteRule ^index\.php$ /specifications/processeurs/index.php? [R=301,L]
s'il y a également une règle de réécriture, il faut suivre les conseils donnés ici pour éviter que ça boucle : -http://www.urlrewriting.fr/article-08,07,17,Eti@-Redirection-9.html
Merci beaucoup

je teste ca de suite ;)
 
Nouveau WRInaute
Aille, mauvaise nouvelle, il me redirige vers une erreur 404 :(

alors, j'ai enlevé le /devant specifications car j'ai mit RewriteBase / au début du fichier.
Quel est le but du Query String ?

Merci pour la patience
 
Nouveau WRInaute
webmasterlamogere a dit:
S'il y a une erreur 404 c'est que la page de destination est fausse.
La condition permet de tester la QUERY_STRING (paramètres d'url).
pour toi la page de destination est bien /specifications/processeurs/index.php ?

merci de ta patience !
 
WRInaute passionné
Je viens de regarder et ta page 404 n'est pas explicite. C'est pour cela que je n'ai pas vue que la page n'existait pas. Si j'ai bien compris tu veux renommer la page et faire une redirection 301. Si c'est le cas, voila le code :
Code:
RewriteEngine on
RewriteCond %{QUERY_STRING} ^option=com_specifications&Itemid=29$
RewriteRule ^index\.php$ /specifications/processeurs/index.php? [R=301,L]
RewriteRule ^specifications/processeurs/index\.php$ /index.php?option=com_specifications&Itemid=29&rewrite [L]
 
Nouveau WRInaute
webmasterlamogere a dit:
Je viens de regarder et ta page 404 n'est pas explicite. C'est pour cela que je n'ai pas vue que la page n'existait pas. Si j'ai bien compris tu veux renommer la page et faire une redirection 301. Si c'est le cas, voila le code :
Code:
RewriteEngine on
RewriteCond %{QUERY_STRING} ^option=com_specifications&Itemid=29$
RewriteRule ^index\.php$ /specifications/processeurs/index.php? [R=301,L]
RewriteRule ^specifications/processeurs/index\.php$ /index.php?option=com_specifications&Itemid=29&rewrite [L]
arg, pareil, erreur 404 :(

en fait ce que je veux faire, c'est que quand je rentre l'url http://www.hardware-specs.net/index.php ... &Itemid=29
je voudrais que une fois la page finie de chargée, l'url devienne http://www.hardware-specs.net/specifica ... /index.php tout en gardant les memes informations sur la page ;)
 
WRInaute passionné
pour éviter que ces deux règles génèrent une boucle infinie on est obligé d'ajouter un paramètre "rewrite".
avec les règles que je t'ai données ça affiche le contenu de l'url :
-http://www.hardware-specs.net/index.php?option=com_specifications&Itemid=29&rewrite

essaye de voir pourquoi cette url ne marche car ça ne vient surement pas de la règle htaccess.
 
WRInaute impliqué
radeon4ever a dit:
c'est pas risqué de mettre en clair sur un fofo un .htaccess d'un site ?

Peut etre, je ne sais pas. C'est pour cela qu'il ne faut pas donner le nom de domaine sur le forum...

Tu peux me l'envoyer en MP (et peut etre aussi a webmasterlamogère puisqu'il a déjà passé pas mal de temps avec toi) si tu veux.
 
Nouveau WRInaute
Bonjour j'ai également le même problème, à savoir :

google m'a détécté une page duplicate content qui provient d'un script que j'utilise, ce script génère cette url:

monsite.com/Comments.php?ArticleID=‎

je souhaite que cette url deviennent automatiquement monsite.com/index.php


Donc j'ai essayé ceci dans mon htaccess:

Code:
RewriteCond %{QUERY_STRING} ^ArticleID=?$
RewriteRule ^Comments\.php$ index.php? [R=301,L]

mais ce n'est pas pris en compte ..

Merci
 
WRInaute impliqué
Ma_x_im a dit:
Bonjour j'ai également le même problème, à savoir :

google m'a détécté une page duplicate content qui provient d'un script que j'utilise, ce script génère cette url:

monsite.com/Comments.php?ArticleID=‎

je souhaite que cette url deviennent automatiquement monsite.com/index.php


Donc j'ai essayé ceci dans mon htaccess:

Code:
RewriteCond %{QUERY_STRING} ^ArticleID=?$
RewriteRule ^Comments\.php$ index.php? [R=301,L]

mais ce n'est pas pris en compte ..

Merci

GG met un certain temps a enlever les URL devenues obsolete. Mais si ta redirection marche, alors GG la prendra en compte. Tu peux accélérer le mouvement en demandant a retirer l'URL en question dans GWT (Google Webmaster Tools).
 
Nouveau WRInaute
non mais ca ne marche pas ... est ce que les lignes de codes sont correctes ou pas ?

la redirection ne se fait pas :/
 
WRInaute impliqué
Il y avait une erreur, le ? a la fin de la première ligne est en trop. Et il manque le /devant index.php . Essaie ça:

Code:
RewriteCond %{QUERY_STRING} ^ArticleID=$
RewriteRule Comments\.php /index.php? [R=301,L]
 
Nouveau WRInaute
Hello, on avance mais j'ai une autre erreur :

tout d'abord je me suis tromper dans le chemin,

c'est en fait :

www.monsite.com/DOSSIER/Comments.php?ArticleID=

donc niveau du code j'ai mis ceci :

Code:
RewriteCond %{QUERY_STRING} ^ArticleID=$ 
RewriteRule /DOSSIER/Comments\.php /index.php? [R=301,L]

Ensuite la redirection marche à moitié, je suis bien redirectionner sur l'index.php mais j'obtient pas une url "propre" à savoir index.php mais des résultats comme celui ci :

index.php?ArticleID=

j'ai donc ajouter comme code :


Code:
RewriteCond %{QUERY_STRING} ^ArticleID=$ 
RewriteRule /index\.php /index.php? [R=301,L]

j'obtient même du :

index.php?ArticleID=%E2%80%8E

Merci !
 
Nouveau WRInaute
bon, désolé pour l'absence, mais j'ai trouvé autre chose pour que mes liens soit référencés, j'ai pondu un script qui me génère un autre sitemap et qui est validé par google ;) donc je pense que ca sera la meilleure solution, la plus rapide et la plus efficace :)
 
Discussions similaires
Haut