IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Apache Discussion :

rewrite et variable url


Sujet :

Apache

  1. #1
    Membre actif Avatar de elcoyotos
    Homme Profil pro
    Amateur passionné
    Inscrit en
    Octobre 2006
    Messages
    490
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Amateur passionné

    Informations forums :
    Inscription : Octobre 2006
    Messages : 490
    Points : 294
    Points
    294
    Par défaut rewrite et variable url
    Bonjour à tous,

    Je suis en train de réécrire les url de mon forum.
    Résumé de mon fichier .htaccess :

    Ligne 1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^sujet-([0-9]+)-forum-([0-9]+)-([a-zA-Z0-9-]+)\.php$  messages.php?sujet=$1&forum=$2 [L]
    Ici, tout va bien, je récupère bien les variables forum et sujet
    Ligne 2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^forum-([0-9]+)-page-([0-9]+)-([a-zA-Z0-9-]+)\.php$  sujets.php?forum=$1&page$2 [L]
    Ici par contre je récupère bien la variable forum mais pas la variable page !!!
    J'avoue que la je coince car je ne comprends pas pourquoi !!!!
    Quelqu'un peut-il m'aider ?
    Merci d'avance ....
    Écoute, sinon ta langue te perdra (proverbe Navajo)

  2. #2
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Tu peux donner une URL que tu utilises pour tester ?

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  3. #3
    Membre actif Avatar de elcoyotos
    Homme Profil pro
    Amateur passionné
    Inscrit en
    Octobre 2006
    Messages
    490
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Amateur passionné

    Informations forums :
    Inscription : Octobre 2006
    Messages : 490
    Points : 294
    Points
    294
    Par défaut
    Oui, bien sur : http://www.arizona-dream.com/Usa/ess...-voyageurs.php (il s'agit d'une page de test)

    La variable page n'est pas pris en compte

    D'ailleurs, j'en profite pour poser quelques questions :


    1. Quelle serai la règle de réécriture dans le fichier htaccess si je voulais une url sous cette forme : ....forum-1-le-coin-des-voyageurs.php?page=3
    2. et sous cette forme : .... 680-1-2-le-coin-des-voyageurs.php Ou 680 serai le sujet, 1 le forum et 2 la page .....
    3. Et enfin, d'un point de vue référencement, vaut-il mieux réécrire ma page avec une extension .html ou laisser .php


    Merci d'avance pour vos réponses ....
    Écoute, sinon ta langue te perdra (proverbe Navajo)

  4. #4
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Ton .htaccess est donc bien dans le répertoire Usa/essai ?

    Citation Envoyé par elcoyotos Voir le message
    1. Quelle serai la règle de réécriture dans le fichier htaccess si je voulais une url sous cette forme : ....forum-1-le-coin-des-voyageurs.php?page=3
    La même chose mais sans page et $2 et avec QSA :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^forum-([0-9]+)-([a-zA-Z0-9-]+)\.php$  sujets.php?forum=$1 [L,QSA]
    Citation Envoyé par elcoyotos Voir le message
    1. et sous cette forme : .... 680-1-2-le-coin-des-voyageurs.php Ou 680 serai le sujet, 1 le forum et 2 la page .....
    "le sujet" : on est censé en faire quoi ? Y a un paramètre d'URL pour lui ?

    Citation Envoyé par elcoyotos Voir le message
    1. Et enfin, d'un point de vue référencement, vaut-il mieux réécrire ma page avec une extension .html ou laisser .php
    Aucune idée, il faut poser la question sur le forum référencement, mais à mon avis, c'est pareil. Généralement, la question se pose pour les paramètres d'URL mais pas pour les extensions qui n'ont pas de sens particulier, en réalité.

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  5. #5
    Membre actif Avatar de elcoyotos
    Homme Profil pro
    Amateur passionné
    Inscrit en
    Octobre 2006
    Messages
    490
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Amateur passionné

    Informations forums :
    Inscription : Octobre 2006
    Messages : 490
    Points : 294
    Points
    294
    Par défaut
    Tout d'abord, merci pour tes réponses
    Pour le QSA, je ne connaissait pas ... Je vais tester ça ...
    Pour l'extension HTML ou PHP, je demandais ça car j'ai remarqué que la plupart des site mettent HTML ...

    Ton .htaccess est donc bien dans le répertoire Usa/essai ?
    Oui

    "le sujet" : on est censé en faire quoi ? Y a un paramètre d'URL pour lui ?
    Je ne comprend pas ce que tu veux dire. Je réexplique ce que je souhaiterai :
    Réécrire cette url --> ....sujet=659&forum=2&page=2
    Sous cette forme --> ...659-2-2-le-coin-des-voyageurs.php

    PS --> QSA= Query String Append(pour ceux comme moi qui se demande qu'est ce que c'est )
    Écoute, sinon ta langue te perdra (proverbe Navajo)

  6. #6
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Citation Envoyé par elcoyotos Voir le message
    Pour l'extension HTML ou PHP, je demandais ça car j'ai remarqué que la plupart des site mettent HTML ...
    Mon avis c'est que l'extension .html est là pour masquer la techno qui se cache derrière. Un .html, tout le monde sait ce que c'est, on ne se pose pas de question sur le fait qu'on va récupérer du code HTML avec ça. Si tu mets .asp, .php, etc., on sait que tu utilises de l'ASP ou PHP et du coup, on peut être tenter de passer une batterie de tests connus pour révéler les failles d'ASP ou PHP. Avec .html, on ne sait pas ce que c'est, c'est plus difficile d'envisager un piratage. Disons qu'il faut alors aborder le sujet différemment.


    Si on en revient à la question initiale, le problème ne serait-il pas qu'il manque un signe = avant le $2 ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^forum-([0-9]+)-page-([0-9]+)-([a-zA-Z0-9-]+)\.php$  sujets.php?forum=$1&page=$2 [L]
    Citation Envoyé par elcoyotos Voir le message
    Je réexplique ce que je souhaiterai :
    Réécrire cette url --> ....sujet=659&forum=2&page=2
    Sous cette forme --> ...659-2-2-le-coin-des-voyageurs.php
    Toujours le même principe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^([0-9]+)-([0-9]+)-([0-9]+)-.*\.php$  sujets.php?sujet=$1&forum=$2&page=$3 [L]

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  7. #7
    Membre actif Avatar de elcoyotos
    Homme Profil pro
    Amateur passionné
    Inscrit en
    Octobre 2006
    Messages
    490
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Amateur passionné

    Informations forums :
    Inscription : Octobre 2006
    Messages : 490
    Points : 294
    Points
    294
    Par défaut
    le problème ne serait-il pas qu'il manque un signe = avant le $2
    J'y ai cru !!!! Car effectivement, il manquait le signe =...
    Malheureusement, cela n'y change rien !!! Pour plus de clartée, je remets mon hthacces en intégralité :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    RewriteEngine on
    RewriteRule ^forum-([0-9]+)-([a-zA-Z0-9-]+)\.php$  sujets.php?forum=$1 [L]
    RewriteRule ^forum-([0-9]+)-page-([0-9]+)-([a-zA-Z0-9-]+)\.php$  sujets.php?forum=$1&page=$2 [L]
    RewriteRule ^sujet-([0-9]+)-forum-([0-9]+)-([a-zA-Z0-9-]+)\.php$  messages.php?sujet=$1&forum=$2 [L]
    RewriteRule ^forum-usa-amerindiens.php$  index.php [L]
    Puis, mon url de test : ...forum-1-page-2-le-coin-des-voyageurs.php

    Bizarre tout de même. N'est ce pas à cause de cette ligne ? --> RewriteRule ^forum-([0-9]+)-([a-zA-Z0-9-]+)\.php$ sujets.php?forum=$1 [L]

    Bon, de toutes les façons, cela n'est pas grave puisque je vais faire ça :
    Réécrire cette url --> ....sujet=659&forum=2&page=2
    Sous cette forme --> ...659-2-2-le-coin-des-voyageurs.php

    En tous les cas, merci beaucoup pour ta précieuse aide ...

    Une dernière question : Dans le dernier exemple que tu me donne, ne vaut-il pas mieux mettre ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^([0-9]+)-([0-9]+)-([0-9]+)-([a-zA-Z0-9-]+)\.php$  messages.php?sujet=$1&forum=$2&page=$3 [L]
    Plutôt que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^([0-9]+)-([0-9]+)-([0-9]+)-.*\.php$  messages.php?sujet=$1&forum=$2&page=$3 [L]
    Écoute, sinon ta langue te perdra (proverbe Navajo)

  8. #8
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Si, c'est cette ligne qui pose problème : elle vaut aussi pour la seconde règle, à cause du -. Elle sert à quoi d'ailleurs ? Donc si tu veux que ça marche, il faut inverser les règles 1 et 2. C'est souvent le cas : quand la règle est bonne et qu'elle ne marche pas, c'est qu'il y a un conflit avec une autre règle.

    Citation Envoyé par elcoyotos
    Une dernière question : Dans le dernier exemple que tu me donne, ne vaut-il pas mieux mettre ça :
    non, pas vraiment, sauf si tu veux utiliser ce $4 que tu identifies. Par principe, je vais toujours au plus simple.

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  9. #9
    Membre actif Avatar de elcoyotos
    Homme Profil pro
    Amateur passionné
    Inscrit en
    Octobre 2006
    Messages
    490
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Amateur passionné

    Informations forums :
    Inscription : Octobre 2006
    Messages : 490
    Points : 294
    Points
    294
    Par défaut
    Donc, j'ai inversé les lignes une et deux et cela fonctionne !!!!
    Comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RewriteRule ^forum-([0-9]+)-page-([0-9]+)-([a-zA-Z0-9-]+)\.php$  sujets.php?forum=$1&page=$2 [L]
    RewriteRule ^forum-([0-9]+)-([a-zA-Z0-9-]+)\.php$  sujets.php?forum=$1 [L]
    Elle sert à quoi d'ailleurs ?
    C'est la même règle sauf qu'une des deux comporte en plus la variable page

    Encore merci pour ta précieuse aide ......
    Écoute, sinon ta langue te perdra (proverbe Navajo)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [IIS 6] URL Rewriting et variable
    Par scfi1 dans le forum IIS
    Réponses: 0
    Dernier message: 18/01/2011, 12h36
  2. Réponses: 4
    Dernier message: 30/06/2009, 18h39
  3. Réponses: 4
    Dernier message: 06/06/2009, 14h09
  4. [URL Rewriting] Une variable avec un espace
    Par PrOkIuM dans le forum Apache
    Réponses: 10
    Dernier message: 19/03/2008, 11h41
  5. passage de variable url rewriting
    Par ch_lensois dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 05/09/2007, 09h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo