Besoin d'un petit coup de main pour URL Rewriting

Discussion dans 'Rédaction web et référencement' créé par Dans le 7, 31 Octobre 2016.

  1. Dans le 7
    Dans le 7 Nouveau WRInaute
    Inscrit:
    19 Octobre 2014
    Messages:
    31
    J'aime reçus:
    0
    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.
     
  2. Louis63
    Louis63 WRInaute discret
    Inscrit:
    22 Février 2016
    Messages:
    112
    J'aime reçus:
    0
    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]
     
  3. Dans le 7
    Dans le 7 Nouveau WRInaute
    Inscrit:
    19 Octobre 2014
    Messages:
    31
    J'aime reçus:
    0
  4. Louis63
    Louis63 WRInaute discret
    Inscrit:
    22 Février 2016
    Messages:
    112
    J'aime reçus:
    0
    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 =.
     
  5. Dans le 7
    Dans le 7 Nouveau WRInaute
    Inscrit:
    19 Octobre 2014
    Messages:
    31
    J'aime reçus:
    0
    Je vais essayer
     
  6. ortolojf
    ortolojf WRInaute accro
    Inscrit:
    14 Août 2002
    Messages:
    2 807
    J'aime reçus:
    1
    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.
     
  7. Dans le 7
    Dans le 7 Nouveau WRInaute
    Inscrit:
    19 Octobre 2014
    Messages:
    31
    J'aime reçus:
    0
    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]
     
  8. ortolojf
    ortolojf WRInaute accro
    Inscrit:
    14 Août 2002
    Messages:
    2 807
    J'aime reçus:
    1
    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
     
  9. Dans le 7
    Dans le 7 Nouveau WRInaute
    Inscrit:
    19 Octobre 2014
    Messages:
    31
    J'aime reçus:
    0
    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 ?
     
  10. ortolojf
    ortolojf WRInaute accro
    Inscrit:
    14 Août 2002
    Messages:
    2 807
    J'aime reçus:
    1

    Bonjour Monsieur

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

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

    Respectueusement.
     
  11. Dans le 7
    Dans le 7 Nouveau WRInaute
    Inscrit:
    19 Octobre 2014
    Messages:
    31
    J'aime reçus:
    0
  12. Dans le 7
    Dans le 7 Nouveau WRInaute
    Inscrit:
    19 Octobre 2014
    Messages:
    31
    J'aime reçus:
    0
    Merci beaucoup à vous deux.
     
  13. indigene
    indigene WRInaute accro
    Inscrit:
    7 Septembre 2003
    Messages:
    3 247
    J'aime reçus:
    0
    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;
     
  14. Dans le 7
    Dans le 7 Nouveau WRInaute
    Inscrit:
    19 Octobre 2014
    Messages:
    31
    J'aime reçus:
    0
    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.
     
  15. indigene
    indigene WRInaute accro
    Inscrit:
    7 Septembre 2003
    Messages:
    3 247
    J'aime reçus:
    0
    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]
     
  16. Dans le 7
    Dans le 7 Nouveau WRInaute
    Inscrit:
    19 Octobre 2014
    Messages:
    31
    J'aime reçus:
    0
    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 ?
     
  17. indigene
    indigene WRInaute accro
    Inscrit:
    7 Septembre 2003
    Messages:
    3 247
    J'aime reçus:
    0
    parce que tu utilises des url relatives.
     
  18. Dans le 7
    Dans le 7 Nouveau WRInaute
    Inscrit:
    19 Octobre 2014
    Messages:
    31
    J'aime reçus:
    0
  19. indigene
    indigene WRInaute accro
    Inscrit:
    7 Septembre 2003
    Messages:
    3 247
    J'aime reçus:
    0
    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/
     
  20. Dans le 7
    Dans le 7 Nouveau WRInaute
    Inscrit:
    19 Octobre 2014
    Messages:
    31
    J'aime reçus:
    0
    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
     
  21. indigene
    indigene WRInaute accro
    Inscrit:
    7 Septembre 2003
    Messages:
    3 247
    J'aime reçus:
    0