Consultez la formation sur l'écriture web et référencement de WebRankInfo / Ranking Metrics

Messages: 31

Enregistré le: 19 Oct 2014

Message le Lun Oct 31, 2016 18:23

Bonjour à tout et à toutes,
J'aurais besoin d'un petit coup de main pour mettre en place l'URL Rewriting sur mon site.
J'ai lu et re-lu le tuto sur le sujet met je ne comprend pas tout.
Pour mon cas concret les url ressembles à ça :
dansle7.fr/index.php?page=news
J'ai modifié dans mon code pour ça :
dansle7.fr/index-page=news.html

La page index.php se trouve dans le dossier www et pas dans articles comme dans le tuto.

Voici mon fichier htaccess :
#--------------------------------------------------
# Répertoire : /www/
#--------------------------------------------------
# Le serveur doit suivre les liens symboliques :
Options +FollowSymlinks

# Activation du module de réécriture d'URL :
RewriteEngine on

RewriteCond %{HTTP_HOST} ^www\.dansle7\.fr [NC]
RewriteRule (.*) http://dansle7.fr/$1 [QSA,R=301,L]

#--------------------------------------------------
# Règles de réécriture d'URL :
#--------------------------------------------------

# Article sans numéro de page :
RewriteRule ^index-(-[a-z]*)-(-[a-z]*).html$ /index.php?page=$1 [L]

Merci de votre aide.
Haut
20 Réponses
Messages: 112

Enregistré le: 22 Fév 2016

Message le Lun Oct 31, 2016 18:36

dansle7.fr/index-page-news.html donne :
RewriteRule ^index\-[a-z]+\-([a-z]+).html$ /index.php?page=$1 [L]
ou
RewriteRule ^index\-page\-([a-z]+).html$ /index.php?page=$1 [L]
ou
RewriteRule ^index\-([a-z]+)\-([a-z]+).html$ /index.php?$1=$2 [L]
Haut
Messages: 31

Enregistré le: 19 Oct 2014

Message le Lun Oct 31, 2016 19:04

Tous d'abord merci de ton aide.
J'ai essayé tes trois propositions mais aucunes ne fonctionnes.

Voici l'url fonctionnelle actuelle.
http://dansle7.fr/index.php?page=newsletter

Voici comment je l'ai modifiée
http://dansle7.fr/index-page=newsletter.html
Haut
Messages: 112

Enregistré le: 22 Fév 2016

Message le Lun Oct 31, 2016 19:09

mettre un = dans l'url ne me parait pas une bonne idée.
mes 3 régles sont avec un second -, mais il est bien possible de mettre un =.
Haut
Messages: 31

Enregistré le: 19 Oct 2014

Message le Lun Oct 31, 2016 19:10

Je vais essayer
Haut
Messages: 2744

Enregistré le: 14 Aoû 2002

Message le Lun Oct 31, 2016 19:16

Bonjour Monsieur

N'y a-t-il pas une erreur conceptuelle dans l'url-rewriting théorique envisagé ?

Dans votre cas il y a le suffixe de l'url sans paramètre, qui est suivi du signe égal, puis du la valeur du paramètre.

L'ensemble de l'url envisagée, est-il une url avec ou sans paramètre ?

- Si avec paramètre => Où est le nouveau paramètre ?

- Si url sans paramètre => Possible ou non de mettre le signe égal ( = ), dans une url sans paramètre ?

Mes deux cents.

Respectivement.
Haut
Messages: 31

Enregistré le: 19 Oct 2014

Message le Lun Oct 31, 2016 19:30

Bonjour Monsieur ortolojf
Je ne suis pas sur d'avoir tout compris mais oui il y a des paramètres dans mon url.
Après le signe = le nom change est affiche la page demandée.
http://dansle7.fr/index.php?page=accueil
http://dansle7.fr/index.php?page=page_contact
http://dansle7.fr/index.php?page=newsletter

Je vais rencontrer un autre problème, il y a des pages ou le nom contient des -
EX:
http://dansle7.fr/index.php?page=plan-du-site

J'ai essayé de remplacer le = par un - ou un . mais ça fonctionne pas mieux.
http://dansle7.fr/index-page-newsletter.html
RewriteRule ^index\-page\-([a-z]+).html$ /index.php?page-$1 [L]
Haut
Messages: 2744

Enregistré le: 14 Aoû 2002

Message le Lun Oct 31, 2016 19:51

Bonjour Monsieur

Je croyais que vous vouliez rediriger :

dansle7.fr/index-page=news.html

vers :

dansle7.fr/index.php?page=news.html

Il me semble ( peut-être que je me trompe ? ), que la première url n'est pas valide, car elle a un signe égal ( = ), intégré à une url sans paramètre apparent.

En d'autres termes, l'url de départ est une url sans paramètre ( sans ? ni & ), cependant qui contient un signe égal.

Est-ce conforme à la syntaxe d'une url ?

Respectueusement.

Jean Fra
Haut
Messages: 31

Enregistré le: 19 Oct 2014

Message le Lun Oct 31, 2016 19:52

J'ai lu à nouveau le tuto et j'ai trouvé, ça fonctionne.
J'ai modifié l'url dans mon code pour :
http://dansle7.fr/index-newsletter.html
Le fichier htaccess
RewriteRule ^index-([a-z]+).html$ /index.php?page=$1 [L]

Mais comme prévu le nom des pages avec des - ou des _ vont me poser problème.
Je pense qu'il faut que je modifie [a-z] mais comment ?
Haut
Messages: 2744

Enregistré le: 14 Aoû 2002

Message le Lun Oct 31, 2016 20:07

Dans le 7 a écrit:J'ai lu à nouveau le tuto et j'ai trouvé, ça fonctionne.
J'ai modifié l'url dans mon code pour :
http://dansle7.fr/index-newsletter.html
Le fichier htaccess
RewriteRule ^index-([a-z]+).html$ /index.php?page=$1 [L]

Mais comme prévu le nom des pages avec des - ou des _ vont me poser problème.
Je pense qu'il faut que je modifie [a-z] mais comment ?



Bonjour Monsieur

Inclure un - et un _ dans la parenthèse ?

RewriteRule ^index-([_a-z-]+).html$ /index.php?page=$1 [L]

Respectueusement.
Haut
Messages: 31

Enregistré le: 19 Oct 2014

Message le Lun Oct 31, 2016 20:15

Merci ça fonctionne.
Je vais maintenant essayer d'enlever index car ça fait désordre puis je vais m’attaquè aux url plus compliquées comme :
http://dansle7.fr/index.php?page=imprimerie&maquette=Carte+d'adhésion
Haut
Messages: 31

Enregistré le: 19 Oct 2014

Message le Lun Oct 31, 2016 20:52

Merci beaucoup à vous deux.
Haut
Messages: 3259

Enregistré le: 7 Sep 2003

Message le Lun Oct 31, 2016 22:04

L'url rewriting s'utilise quand on a un "patern" qui correspond à un très grand nombre d'url comme par exemple sur ce forum tous les posts sont dans la forme xxxxxxxxxx-tnnnnnnn.html, la présence systématique de -tnnnnnnn.html en fin d'url permet de rediriger vers une page où nnnnnn en sera le paramètre.

Mais dans ton cas j'ai l'impression que chaque url est un cas particulier, ou presque.

Je ne sais pas combien de pages tu as à rediriger mais ça ne serait pas plus simple de rediriger une par une toutes les url nouvelles sans paramètre vers les url anciennes avec les paramètres que tu veux.

Par exemple faire ceci sans chercher à utiliser systématiquement des $1 :
RewriteRule ^carte-adhesion.html$ /index.php?page=imprimerie&maquette=Carte+d'adhésion [L]
RewriteRule ^autre-page.html$ /index.php?page=une-autre-page-toute-bizarre [L]
etc.


Attention, dans mon exemple il faut peut-être échapper certains caractères pour que ça fonctionne, c'est juste l'idée que je voulais t'expliquer et pas à reprendre le code à la virgule près;
Haut
Messages: 31

Enregistré le: 19 Oct 2014

Message le Lun Oct 31, 2016 23:02

Bonsoir indigene,
Merci de ton aide.
Je n'ai pas temps de page que ça et elle on toutes le même schéma.
index.php?page=accueil
index.php?page=page_contact
index.php?page=imprimerie
etc...
La seule page qui a un autre paramètre c'est la page index.php?page=imprimerie qui peut être
index.php?page=imprimerie&maquette=Affiche
index.php?page=imprimerie&maquette=Carte+d'adhésion
etc...
il y en a neuf en tous.
Ta solution me conviendrait par dépit car si je rajoute une maquette qui n’existe pas encore depuis mon admin le sous onglet maquette va être créé dans mon onglet imprimerie et il faudra que j'aille rajouter la ligne à chaque fois dans le htaccess.
Je voudrais bien trouver une solution qui pourrait le faire dynamiquement.

J'ai presque trouvé sauf que je tombe sur ma page 404
L'ancienne url
http://dansle7.fr/index.php?page=imprimerie&maquette=Affiche
m'affiche bien la page des affiches alors que
http://dansle7.fr/imprimerie-Affiche.html
Me renvoi sur ma page 404
Si je remplace le trait d'union - par un slache / je tombe bien sur ma page affiche mais les images sont pas ou bizarrement affichées.
Voici la ligne de mon htaccess
RewriteRule ^([_a-zA-Z-]+)-([_a-zA-Z-]+).html$ /index.php?page=$1&maquette=$2 [L]

Encore merci de ton aide.
Haut
Messages: 3259

Enregistré le: 7 Sep 2003

Message le Lun Oct 31, 2016 23:53

Dans le 7 a écrit:Voici la ligne de mon htaccess
RewriteRule ^([_a-zA-Z-]+)-([_a-zA-Z-]+).html$ /index.php?page=$1&maquette=$2 [L]


Et un truc du genre :

RewriteRule ^(.*)-(.*)\.html$ /index.php?page=$1&maquette=$2 [L]

ou encore :

RewriteRule ^imprimerie-(.*)\.html$ /index.php?page=imprimerie&maquette=$1 [L]
Haut
Messages: 31

Enregistré le: 19 Oct 2014

Message le Mar Nov 01, 2016 0:22

Merci, je vais essayer.
J'ai déjà éliminé un futur problème, j'ai viré tout les accents et autres caractères interdit dans l'url.

ÉDIT :
J'ai mis ça :
RewriteRule ^([_a-zA-Z-]+)/([_a-zA-Z-]+).html$ /index.php?page=$1&maquette=$2 [L]
ça fonctionne, reste à faire afficher les images. lol
Je me demande pourquoi avec l'url modifié les images s’affichent pas

autre question : si je suis sur la page http://dansle7.fr/imprimerie/affiche.html et que je souhaite revenir sur l'accueil il y a un problème car imprimerie reste dans l'url.
J'ai http://dansle7.fr/imprimerie/accueil.html au lieu de http://dansle7.fr/accueil.html donc page 404.
Comment enlever imprimerie/ dans l'url ?
Haut
Messages: 3259

Enregistré le: 7 Sep 2003

Message le Mar Nov 01, 2016 0:59

parce que tu utilises des url relatives.
Haut
Messages: 31

Enregistré le: 19 Oct 2014

Message le Mar Nov 01, 2016 1:10

Je suis désolé mais je croix que je comprend pas tout.
J'ai modifié mon htaccess, j'ai ajouté http://dansle7.fr mais mes url sont comme avant avec le ? et le &

# page sans autre variable:
RewriteRule ^([_a-zA-Z-]+).html$ http://dansle7.fr/index.php?page=$1 [L]

# page avec autre variable :
RewriteRule ^([_a-zA-Z-]+)/([_a-zA-Z-]+).html$ http://dansle7.fr/index.php?page=$1&maquette=$2 [L]
Haut
Messages: 3259

Enregistré le: 7 Sep 2003

Message le Mar Nov 01, 2016 1:15

non, c'est pas le htaccess qu'il faut modifier. Dans ton site quand tu fais un lien vers l'accueil il faut le faire en adresse absolue et pas en adresse relative car sinon il appelle la page accueil.html dans le répertoire en cours qui était /imprimerie/
Haut
Messages: 31

Enregistré le: 19 Oct 2014

Message le Mar Nov 01, 2016 1:44

Merci beaucoup.
Il me semble que tout fonctionne.
Je fait faire quelques essaies et si tout est nickel je modifie toutes mes url.

MERCI :D
Haut
Messages: 3259

Enregistré le: 7 Sep 2003

Message le Mar Nov 01, 2016 3:10

COOL
Haut

Formation recommandée sur ce thème :

Formation Rédaction web et référencement : découvrez les techniques d'écriture web efficaces à la fois pour les internautes et pour le référencement. Formation animée par O. Duffez et F. Facériès, spécialistes en référencement naturel Google.

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