Trouver les règles de réécritures

Nouveau WRInaute
Bonjour

J'ai un problème sur mon site, il est bien référencé sous le terme "robot" par exemple mais je me suis apperçu qu'une rubrique n'était pas du tout référencée, elle semble ignorée...D'où l'url rewriting...

Je souhaiterais donc faire de la réécriture d'URL mais je bloque même en ayant lu le tuto.
Voila le schèma de mon URL existante :

http://www.robot-maker.com/index.php?mo ... ail&id=262

Je souhaiterais savoir comment la réécrire et si vous aviez des exemples ce serait bien sympa :)

Merci beaucoup
 
WRInaute impliqué
Bonjour,

dans le .htaccess:

RewriteEngine on
RewriteRule ([a-z]+)\.([a-z]+)\.([0-9]+)$.html$ /index.php?module=$1&page=$2&id=$3

et
h**p://www.robot-maker.com/index.php?module=robotscope&page=detail&id=262
deviendra:

h**p://robot-maker.com/robotscope.detail.262.html
 
Nouveau WRInaute
Merci beaucoup pour ta réponse !

Désolé pour le temps de réponse, j'ai un métier très prennant et mon site c'est mon moyen d'un peu m'évader ;)

J'ai testé ta regle dans mon fichier .htaccess et quand je me rend à l'ancienne adresse, rien ne change ?

h**p://www.robot-maker.com/index.php?module=robotscope&page=detail&id=262

si je test :
h**p://robot-maker.com/robotscope.detail.262.html

ca ne fonctionne pas, c'est 404.


Est ce que je dois modifier le script du site pour afficher les nouvelles URL ?

J'ai un forum qui utilise l'url rewriting sur le même hébergement grace à un mod et ca fonctionne bien, donc ce n'est pas un problème de serveur.

Voila, merci beaucoup :)
 
WRInaute impliqué
s0laris a dit:
Merci beaucoup pour ta réponse !

Désolé pour le temps de réponse, j'ai un métier très prennant et mon site c'est mon moyen d'un peu m'évader ;)

J'ai testé ta regle dans mon fichier .htaccess et quand je me rend à l'ancienne adresse, rien ne change ?

C'est normal, car il y a une tendance a présenter la réécriture à l'envers ici...

La règle donnée par corvisart faut la transformation suivante :

h**p://robot-maker.com/robotscope.detail.262.html

est réécrit en

h**p://www.robot-maker.com/index.php?module=robotscope&page=detail&id=262

et non pas le contraire!

Donc si tu vas sur la deuxième adress (celle avec index.php) rien ne change.

L'idée est que tu remplace tout tes liens vers index.php par des liens vers les pages html. La réécriture en interne transforme les url html vers les url index.php

Normalement, si tu tape

h**p://robot-maker.com/robotscope.detail.262.html

tu devrais avoir l'affichage de la page

h**p://www.robot-maker.com/index.php?module=robotscope&page=detail&id=262

Pour voir ce qui se passe ajoute R=301 dans la règle:
Code:
RewriteEngine on
RewriteRule ([a-z]+)\.([a-z]+)\.([0-9]+)$.html$ /index.php?module=$1&page=$2&id=$3 [R=301,L]

et regarde l'adresse qui est affichée dans ton navigateur.

Il se peut qu'il y ai des interférences avec le module de réécriture déja installé.
 
Nouveau WRInaute
Ok merci beaucoup pour ta réponse ;)

J'ai donc mis la nouvelle réécriture avec R=301
et quand je teste :

h**p://robot-maker.com/robotscope.detail.262.html

Et ca met toujours erreur 404 :/

Pourtant j'ai mis le .htaccess dans le répertoire de mon site (en effet j'ai plusieurs sites sur le même hébergement)

Bref c'est mis dans mon répertoire robotmaker là ou se trouve mon index.php
donc l'adresse wwww.robot-maker.com est liée au répertoire robotmaker.

L'url rewriting est sur le forum qui se trouve à cette adresse wwww.robot-passion.com et qui se trouve sans un repertoire "forumipb" et là, l'url rewriting fonctionne !

Est ce qu'il pourrait y avoir une incidence si deux URL rewriting se trouvent sur le même serveur ?
Sinon je vois vraiment pas ce qu'il pourrait y avoir...
Peut être que je fais mal mon .htaccess mais je ne fais que copier/coller les lignes !
 
WRInaute impliqué
s0laris a dit:
J'ai donc mis la nouvelle réécriture avec R=301
et quand je teste :

h**p://robot-maker.com/robotscope.detail.262.html

Et ca met toujours erreur 404 :/

Il doit y avoir une interférence avec d'autres règles. Peux tu mettre le contenu complet du .htaccess de la racine?
 
Nouveau WRInaute
Ca c'est dans le repertoire ipbforum ou je redirige le forum du site wwww.robot-passion.com

Code:
#
#  mod_rewrite in use
#
RewriteEngine On
#  Uncomment following line if your webserver's URL 
#  is not directly related to physival file paths.
#  This is usually not needed.
# RewriteBase /YourForumDirectory
#
#  Rules
#
# Gallery
RewriteRule ^gallery\.html(.*)$ index.php?act=module&module=gallery$1
# DO THE TOPIC URLS
RewriteRule ^(.*)-t([0-9][0-9]*)-s([0-9][0-9]*)\.html(.*)$ index.php?showtopic=$2&st=$3
RewriteRule ^(.*)-t([0-9][0-9]*)\.html(.*)$ index.php?showtopic=$2$3
# DO THE FORUM URLS
RewriteRule ^(.*)-new-topic-f([0-9]*)\.html(.*)$ index.php?act=Post&CODE=00&f=$2$3
RewriteRule ^(.*)-new-poll-f([0-9]*)\.html(.*)$ index.php?act=Post&CODE=10&f=$2$3
RewriteRule ^(.*)-f([0-9][0-9]*)\.html(.*)$ index.php?showforum=$2$3
# DO EMAIL AND PM URLS
RewriteRule ^(.*)-a-private-message-m([0-9]*)\.html(.*)$ index.php?act=Msg&CODE=4&MID=$2$3
RewriteRule ^(.*)-an-email-m([0-9]*)\.html(.*)$ index.php?act=Mail&CODE=00&MID=$2$3
# DO THE PROFILE URLS
RewriteRule ^(.*)-m([0-9]*)\.html(.*)$ index.php?showuser=$2$3
# Login/Logout
RewriteRule ^logout\.html(.*)$ index.php?act=Login&CODE=03$1
RewriteRule ^login\.html(.*)$ index.php?act=Login&CODE=00$1
RewriteRule ^register\.html(.*)$ index.php?act=Reg&CODE=00$1
# STATS AND LEGENDS
RewriteRule ^the-moderating-team\.html(.*)$ index.php?act=Stats&CODE=leaders$1
RewriteRule ^todays-top-10-posters\.html(.*)$ index.php?act=Stats$1
# MEMBERS LIST
RewriteRule ^member-list\.html(.*)$ index.php?act=Members$1
# ONLINE LIST
RewriteRule ^online-list\.html(.*)$ index.php?act=Online$1
# HELP
RewriteRule ^(.*)-h([0-9]*)\.html(.*)$ index.php?act=help&CODE=01&HID=$2$3
RewriteRule ^(.*)help\.html(.*)$ index.php?act=Help$2
# USER CP
RewriteRule ^my-controls\.html(.*)$ index.php?act=UserCP&CODE=00$1
# MESSENGER
RewriteRule ^compose-new-message\.html(.*)$ index.php?act=Msg&CODE=04$1
RewriteRule ^inbox\.html(.*)$ index.php?act=Msg&CODE=01&VID=in$1
RewriteRule ^sent-items\.html(.*)$ index.php?act=Msg&CODE=01&VID=sent$1
RewriteRule ^saved-pms\.html(.*)$ index.php?act=Msg&CODE=20$1
RewriteRule ^empty-pm-folders\.html(.*)$ index.php?act=Msg&CODE=delete$1
RewriteRule ^edit-storage-folders\.html(.*)$ index.php?act=Msg&CODE=07$1
RewriteRule ^pm-buddies\.html(.*)$ index.php?act=Msg&CODE=02$1
RewriteRule ^archive-messages\.html(.*)$ index.php?act=Msg&CODE=14$1
RewriteRule ^message-tracker\.html(.*)$ index.php?act=Msg&CODE=30$1
RewriteRule ^new-messages\.html(.*)$ index.php?act=Msg&CODE=01$1
# SUBSCRIPTIONS
RewriteRule ^view-topic-subscriptions\.html(.*)$ index.php?act=UserCP&CODE=26$1
RewriteRule ^view-forum-subscriptions\.html(.*)$ index.php?act=UserCP&CODE=50$1
# PERSONAL PROFILE
RewriteRule ^edit-profile-info\.html(.*)$ index.php?act=UserCP&CODE=01$1
RewriteRule ^edit-signature\.html(.*)$ index.php?act=UserCP&CODE=22$1
RewriteRule ^edit-avatar-settings\.html(.*)$ index.php?act=UserCP&CODE=24$1
RewriteRule ^change-personal-photo\.html(.*)$ index.php?act=UserCP&CODE=photo$1
# OPTIONS
RewriteRule ^manage-your-attachments\.html(.*)$ index.php?act=UserCP&CODE=attach$1
RewriteRule ^manage-ignored-users\.html(.*)$ index.php?act=UserCP&CODE=ignore$1
RewriteRule ^email-settings\.html(.*)$ index.php?act=UserCP&CODE=02$1
RewriteRule ^board-settings\.html(.*)$ index.php?act=UserCP&CODE=04$1
RewriteRule ^change-email-address\.html(.*)$ index.php?act=UserCP&CODE=08$1
RewriteRule ^change-password\.html(.*)$ index.php?act=UserCP&CODE=28$1
# MODERATOR TOOLS
RewriteRule ^ip-tool\.html(.*)$ index.php?act=UserCP&CODE=iptool$1
RewriteRule ^member-tool\.html(.*)$ index.php?act=UserCP&CODE=memtool$1
RewriteRule ^manage-anoucements\.html(.*)$ index.php?act=UserCP&CODE=announce_start$1
# GET NEW POSTS
RewriteRule ^get-new-posts\.html(.*)$ index.php?act=Search&CODE=getnew$1
# DO THE FORUM INDEX
RewriteRule ^forums\.html(.*)$ index.php?act=idx$3

Ca fonctionne dans ce répertoire !

Et dans le répertoire robotmaker, j'ai juste les lignes proposée plus haut :(

J'ai aucun htaccess à la racine de mon hébergement.

Je vais au pire faire un test mais ce serait curieux que mon hébergeur (Hostgator) permette l'UR dans un repertoire et pas dans un autre ?

Merci encore pour vos aides
 
WRInaute impliqué
Quelque chose me chiffonne: comment se fait il que la page d'erreur soit la page d'accueil.

Ou est-ce configuré?

As tu un hébergement dédié ou mutualisé?
 
Nouveau WRInaute
Je suis mutualisé chez hostgator.

Le fichier qui permet la page d'erreur se configure via le cpanel, il se nomme 404.shtml

Je l'ai enlevé...

et...

Ca ne fontionne toujours pas ^^
 
WRInaute impliqué
s0laris a dit:
Ca c'est dans le repertoire ipbforum ou je redirige le forum du site wwww.robot-passion.com

Code:
# DO THE FORUM INDEX
RewriteRule ^forums\.html(.*)$ index.php?act=idx$3

Ca fonctionne dans ce répertoire !

Et dans le répertoire robotmaker, j'ai juste les lignes proposée plus haut :(

J'ai aucun htaccess à la racine de mon hébergement.

Je vais au pire faire un test mais ce serait curieux que mon hébergeur (Hostgator) permette l'UR dans un repertoire et pas dans un autre ?

Merci encore pour vos aides


J'avais zappé que tu étais dans un sous répertoire.
Bref, soit tu enlève le / devant index, comme les règles utilisées dans ton forum :

Code:
RewriteEngine on
RewriteRule ([a-z]+)\.([a-z]+)\.([0-9]+)$.html$ index.php?module=$1&page=$2&id=$3 [R=301,L]

soit tu met le chemin depuis la racine (je ne sais pas si c'est le bon):

Code:
RewriteEngine on
RewriteRule ([a-z]+)\.([a-z]+)\.([0-9]+)$.html$ /robotmaker/index.php?module=$1&page=$2&id=$3 [R=301,L]
 
Nouveau WRInaute
Bon ben...

Ca ne fonctionne toujours pas...

J'ai testé en virant le / et avec l'adresse depuis la racine et toujours erreur 404 :/

là j'ai laissé sans le / pour preuve...

De quoi s'arracher les cheveux...

A croire que c'est la regle qui ne correspond pas ?
 
WRInaute impliqué
Il y a une erreur dans la règle de corvisart, et on l'a gardée depuis le début! Il y a un $ intempestif avant .html dans la partie gauche. En l'enlevant ça devrait aller beaucoup mieux:

Code:
RewriteEngine on
RewriteRule ([a-z]+)\.([a-z]+)\.([0-9]+).html$ index.php?module=$1&page=$2&id=$3 [R=301,L]
 
Nouveau WRInaute
Vap a dit:
Il y a une erreur dans la règle de corvisart, et on l'a gardée depuis le début! Il y a un $ intempestif avant .html dans la partie gauche. En l'enlevant ça devrait aller beaucoup mieux:

Code:
RewriteEngine on
RewriteRule ([a-z]+)\.([a-z]+)\.([0-9]+).html$ index.php?module=$1&page=$2&id=$3 [R=301,L]

J'avais essayé au cas ou si c'était le problème et ca ne fonctionne pas, même ce $ enlevé...

Je sais vraiment pas quoi faire là...
 
WRInaute impliqué
Met le contenu du .htaccess du répertoire robotmaker ici. Sans ça je ne saurais pas t'aider plus.
 
Nouveau WRInaute
Bonjour,

Le problème c'est que dans mon .htaccess il n'y a vraiment rien d'autre que ces lignes...:(

Bon et bien pas grave, merci en tous cas pour ton aide, c'est très gentil de ta part de m'avoir consacré un peu de ton temps.

Si jamais je viendrais à trouver, je posterais le comment ici.

Encore merci !
 
WRInaute impliqué
s0laris a dit:
Bonjour,

Le problème c'est que dans mon .htaccess il n'y a vraiment rien d'autre que ces lignes...:(

Bon et bien pas grave, merci en tous cas pour ton aide, c'est très gentil de ta part de m'avoir consacré un peu de ton temps.

Si jamais je viendrais à trouver, je posterais le comment ici.

Encore merci !

Le problème c'est que tu n'a jamais mis le contenu de ton .htaccess. Tu dis avoir recopié diverses règles mises ici, mais il se peut qu'il y ait une faute de frappe, ce qui me semble l'explication la plus probable.

Mais bon, c'est ton problème, pas le mien :wink:
 
Nouveau WRInaute
Euh...ben c'est tout bête, quand j'ouvre mon htacess et que je copie/colle l'intégralité du contenu je n'ai que rien que ca :

Code:
RewriteEngine on 
RewriteRule ([a-z]+)\.([a-z]+)\.([0-9]+).html$ index.php?module=$1&page=$2&id=$3 [R=301,L]

Je veux bien te donner les droits pour aller jeter un coup d'oeil par toi même mais je n'ai vraiment QUE ca.

Peut être est ce que je dois mettre autre chose avant ?

J'édite avec notepad++ puis ensuite je balance sur le ftp avec filezilla et je renomme de htaccess.txt en .htaccess

C'était juste pour faire référencer la rubrique "robotscope" de mon site.

Voila ;)
 
WRInaute impliqué
L'URL h**p://robot-maker.com/robotscope.detail.262.html

est réécrite en

h**p://www.robot-maker.com/home/hardgad/public_html/robot-maker/index.php?module=robotscope&page=detail&id=262

Je pense donc que ce qui suit devrait marcher:

Code:
RewriteEngine on
RewriteRule ([a-z]+)\.([a-z]+)\.([0-9]+).html$ /index.php?module=$1&page=$2&id=$3 [R=301,L]

ON ne l'avait pas essayée il me semble car il y avait un $ de trop.

Si cela ne marche pas, essaie avec

Code:
RewriteEngine on
RewriteBase /
RewriteRule ([a-z]+)\.([a-z]+)\.([0-9]+).html$ /index.php?module=$1&page=$2&id=$3 [R=301,L]

Mais bon, il y a visiblement une difference entre la façon dont ton forum est dirigé vers son répertoire et celle qui est utilisée pour le site.

Il faut aussi que tu remette ta page d'erreur 404 (404.shtml )
 
Nouveau WRInaute
Super ca fonctionne !

J'ai essayé avec la deuxième écriture et c'est impec !

Merci beaucoup, ca a vraiment été très sympa de ta part de prendre un peu de ton temps pour me répondre.

Donc si j'ai bien compris je dois maintenant changer tous mes liens internes et les remplacer par les nouveaux.

Encore merci !
 
WRInaute impliqué
s0laris a dit:
Donc si j'ai bien compris je dois maintenant changer tous mes liens internes et les remplacer par les nouveaux.

Oui, bon courage.

Je suis content qu'on ait résolu le problème, c'est ce $ en trop qui a fait passer à coté de la solution si longtemps. Mais bon, qui n'a jamais fait une erreur de frappe?
 
Discussions similaires
Haut