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 :

[URL rewriting] Problème au niveau du point d'interrogation ?


Sujet :

Apache

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 107
    Points : 73
    Points
    73
    Par défaut [URL rewriting] Problème au niveau du point d'interrogation ?
    Bonjour à tous,

    Voilà je galère la dessus depuis quelques heures, et je ne trouve de réponse nulle part...

    Mon problème vient je pense du point d'interrogation, j'ai cette regle de réécriture dans mon htaccess :

    RewriteRule ^reponse\.asp\?id\=8$ reponse\.php\?id\=8

    Passer d'une adresse asp avec des parametres vers une adresse php avec des parametres peut parraitre assez étrange mais j'ai mes raisons

    Toujours est-il que quand je rentre dans mon navigateur

    reponse.asp?id=8 j'ai une erreur 404...

    Je ne sais plus quoi tester (ce qui explique tout les caractères échapés)? Qu'est-ce qui cloche dans ma règle ? J'ai d'autre règles sans point d'interrogation qui fonctionnent elles. Ca vient donc du point d'interro ?

    Si quelqu'un peu m'éclairer...

  2. #2
    Membre du Club
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2008
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Janvier 2008
    Messages : 60
    Points : 50
    Points
    50
    Par défaut
    bonjour,

    déjà, je ne suis pas experte, mais je te fais suivre ce que j'ai vu, donc vérifie dans les liens que je t'indique que je ne me trompe pas ...

    en fait, il y a 2 prob je pense
    le premier est dans la partie reponse\.php\?id\=8
    en fait c'est reponse.php?id=8 que tu dois écrire, les protections de caractères ne s'appliquent qu'aux expressions régulières et la deuxième partie n'en est pas une.
    http://www.expreg.com/rewrite.php et http://www.webrankinfo.com/analyses/...-rewriting.php

    le 2ème prob vient de la 1ère partie, il me semble que l'on a pas le droit d'y mettre de ? justement, je ne retrouve plus où je l'ai lu, donc je cherche, mais en attendant, teste sans si tu peux.

  3. #3
    Membre du Club
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2008
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Janvier 2008
    Messages : 60
    Points : 50
    Points
    50
    Par défaut
    je ne retrouve pas mais il y a cette phrase dans le tutos des urlrewriting :

    " Le but de l'URL rewriting est donc d'intercepter côté serveur l'adresse de la page demandée, d'en extraire les paramètres, et de renvoyer côté client la page correspondante (qui n'a pas d'équivalent physique sur le serveur). "

    donc le but est de ne plus avoir de paramètres en get à la fin ...

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 107
    Points : 73
    Points
    73
    Par défaut
    Oui je sais les "\" dans la deuxième partie ne servent à rien. Je les ai mis au cas ou...

    Bref ma règle devient donc :

    RewriteRule ^reponse\.asp\?id\=8$ reponse.php?id=8

    J'avais déjà testé ça mais sans résultat... Si effectivement les "?" ne sont pas admis dans la première partie de la règle même si ils sont échappés, existe-t-il alors un moyen malgrés tout pour utiliser les points d'interrogation dans la première partie ?

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 107
    Points : 73
    Points
    73
    Par défaut
    Citation Envoyé par virgrennes Voir le message
    je ne retrouve pas mais il y a cette phrase dans le tutos des urlrewriting :

    " Le but de l'URL rewriting est donc d'intercepter côté serveur l'adresse de la page demandée, d'en extraire les paramètres, et de renvoyer côté client la page correspondante (qui n'a pas d'équivalent physique sur le serveur). "

    donc le but est de ne plus avoir de paramètres en get à la fin ...
    Ba c'est le but le plus souvent recherché en tout cas... Mon cas est étrange mais justifié : les anciennes page de mon site écrites en asp n'existent plus mais sont encore indexées par google sous la forme "reponse.asp?id=2, etc..." Le site a été réécrit en php, le but et de ne pas paumer le référencement (c'est a dire prendre google de vitesse avant qu'im ne vire les anciennes pages de son index). C'est un peu tordu mais c'est tout ce que j'ai sous la main à première vue pour espérer rattraper le coup.

  6. #6
    Membre du Club
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2008
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Janvier 2008
    Messages : 60
    Points : 50
    Points
    50
    Par défaut
    je me doute bien que tu ne fais pas ça juste pour la gloire , mais même si je ne retrouve pas l'info, j'ai bien peur que ton soucis vienne de là
    et pour finter, tu ne peux pas mettre une expression dans laquelle le ? est en fait n'importe quel caractère en 1 fois, un truc du genre
    ^reponse\.asp.id\=8$ => avec . devant id qui veut dire un caractère n'importe lequel?
    et peut-être aussi pour le =
    => ^reponse\.asp.id.8$

    c'est un peu capilotracté, mais si le but est de faire suivre les liens présents dans google ...

  7. #7
    Membre régulier Avatar de Lancelot du Lac
    Profil pro
    Inscrit en
    Février 2008
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 95
    Points : 108
    Points
    108
    Par défaut
    Pour ce que tu veux faire:

    RewriteRule ^reponse\.asp$ reponse.php

    marchera...

    Mais:

    Si tu veux que la réécriture se déclenche seulement lorsque id=8, tu auras besoin d'utiliser la directive RewriteCond avant ton RewriteRule.

    RewriteRule peut réécrire de l'adresse vers les paramètres, mais il ne peut rien faire au paramètres existants, sauf les faire disparaître en les couvrant par d'autres. Je te laisse étudier RewriteCond.

    Néanmoins, c'est bizarre que tu obtiennes une erreur 404... Je te conseille de faire un log du rewrite pour étudier ce qui se passe -> directives RewriteLogLevel et RewriteLog. N'oublie pas de baisser ton RewriteLogLevel lorsque tu seras en prod.

    As-tu pensé à RewriteEngine on?

    Deux pages à potasser pour toi (si ton serveur est version 2.x):
    http://httpd.apache.org/docs/2.0/misc/rewriteguide.html
    http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html

    Elles proviennent de la doc apache 2.0:
    http://httpd.apache.org/docs/2.0/

    Et voici la page des liens vers toutes les directives:
    http://httpd.apache.org/docs/2.0/mod...reference.html

    A mon humble avis, sur ce sujet-là, rien ne vaut l'essai-erreur. Mais tu ne pourras savoir si tu approches du but que si tu fais un log du rewrite.

  8. #8
    Membre régulier Avatar de Lancelot du Lac
    Profil pro
    Inscrit en
    Février 2008
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 95
    Points : 108
    Points
    108
    Par défaut
    Pour ce genre de pb lié au référencement, utiliser Redirect permanent.

    Ici, il faut bien te dire que "tu n'as rien fait de mal," si j'ose dire. Tu as juste changé l'adresse d'une page, ça arrive. Donc tu n'as pas besoin de "prendre google de vitesse" (comme tu dis) avec une directive qui est invisble aussi bien pour les utilisateurs que pour les robots.

    Avec Redirect permanent, tu indiques à google que l'adresse d'une page, d'une section, d'un site, d'un domaine etc. a changé, et qu'il doit ajuster son index en conséquence. Un type sur la mailing list pour webmasters de google m'a dit que de manière générale il est recommandé de le laisser la directive en place environ 6 mois.

    Pour ma part je l'ai déjà utilisée et j'ai l'impression que ça a marché (difficile d'être sûr; c'est assez effrayant ce sentiment de manque de contrôle avec les moteurs de recherche).

    Autre avantage: tes utilisateurs sauront que la page a migré (du moins ceux qui ont l'esprit observateur).

    Il paraît que ce type de redirection est recommendé par rapport à celles que tu peux coder dans les éléments headers des fichiers html.

  9. #9
    Membre du Club
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2008
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Janvier 2008
    Messages : 60
    Points : 50
    Points
    50
    Par défaut
    merci lancelot, tu m'en apprends plein aussi et cela me donne une approche nouvelle du problème
    désolée reventlov de ne pas avoir pu t'aider plus ...

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 107
    Points : 73
    Points
    73
    Par défaut
    Super pour les réponse !

    J'ai fait un mix de tout ça et c'est ok...

    Merci bcp je commençait à tourner en rond là

  11. #11
    Membre du Club
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2008
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Janvier 2008
    Messages : 60
    Points : 50
    Points
    50
    Par défaut
    Salut

    je suis une vilaine curieuse alors est-ce que tu pourrais m'expliquer ta solution ?
    Pas en détails, je ne veux pas attaquer ton système ou quoi, juste la logique que tu as adopté finalement?

    merci d'avance

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

Discussions similaires

  1. [URL Rewriting] Problème d'encodage
    Par cootchy dans le forum Apache
    Réponses: 1
    Dernier message: 29/08/2007, 10h00
  2. Réponses: 3
    Dernier message: 31/07/2007, 16h40
  3. [URL Rewriting] problème avec sous domaine
    Par Booyakha dans le forum Apache
    Réponses: 1
    Dernier message: 31/07/2007, 16h31
  4. URL Rewriting problème de regexp ?
    Par pierrickg dans le forum Apache
    Réponses: 2
    Dernier message: 10/07/2007, 13h35
  5. [URL Rewriting] Problème URL Rewriting -> CSS
    Par Cartman.inc dans le forum Apache
    Réponses: 8
    Dernier message: 23/04/2007, 14h29

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