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 :

Pb pour faire marcher le module rewrite


Sujet :

Apache

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    199
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 199
    Points : 75
    Points
    75
    Par défaut Pb pour faire marcher le module rewrite
    Bonjour à tous,
    Je viens vous voir car j'ai besoin de votre aide...je tourne en rond depuis le debut d'aprem
    Voila j'essaye de renommer les adresses de mon site web mais je n'y arrive pas
    Tout d'abord le but du module rewrite c'est bien de mettre une adresse url plus jolie dans la barre de navigation du navigateur ?

    Voila mon test :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    RewriteEngine on
    RewriteRule ^test-([0-9]+).html$  test.php?nb=$1 [L]
    Dans mon fichier test.php il y a
    Quand je tape dans mon navigateur l'adresse suivante :
    http://localhost/Test/test.php?nb=1
    J'ai bien le bonjour qui s'affiche
    Mais dans la barre de navigation l'url reste inchangé
    Je ne comprend pas
    Pouvez vous m'éclaicir

    Merci bcp

  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
    Oui, c'est normal, c'est parce que l'URL rewriting fait l'inverse de ce que tu veux : il faut que tu demandes l'URL http://localhost/Test/test-1.html, et le RewriteRule dira à Apache qu'en fait, cette URL, c'est http://localhost/Test/test.php?nb=1. Apache ne fera pas le raisonnement inverse et ne redirigera pas ton navigateur vers la bonne URL en .html (du moins pas avec cette règle), c'est à toi de la donner en mettant à jour ton code HTML pour mettre /Test/test-1.html dans tes liens, par exemple.

    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 régulier
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    199
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 199
    Points : 75
    Points
    75
    Par défaut
    Ok merci
    Moi ce que j'aurais voulu
    c'est de cacher toutes les variable qui sont passé en parametre dans une url
    Est ce que c'est possible ?
    Et si oui comment ?

    Merci d'avance

  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
    Citation Envoyé par debo41 Voir le message
    Moi ce que j'aurais voulu
    c'est de cacher toutes les variable qui sont passé en parametre dans une url
    Avec http://localhost/Test/test-1.html, n'est-ce pas le cas ?

    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 régulier
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    199
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 199
    Points : 75
    Points
    75
    Par défaut
    Bas non c'est pas tout a fait ce que je veux
    J'ai une page avec un formulaire qui renvoie sur une autre page avec plein de variable en parametre
    Et c'est sur cette 2eme page que je voudrais modifier l'url pour le rendre plus "joli"
    Y'a t il un moyen ?

  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
    Avec les formulaires, tu ne peux pas vraiment : c'est le navigateur qui ajoute automatiquement les paramètres d'URL et tu ne peux pas vraiment lutter. Tu as 3 options :
    • Soit passer par la méthode POST plutôt que GET pour envoyer ton formulaire. Dans ce cas, l'URL cible sera celle indiquée dans le paramètre action de ton formulaire mais il y a des restrictions, notamment au niveau du rafraîchissement de la page cible et de sa mise en signet (bookmark) ou l'indexation par un moteur de recherche.
    • Soit tu passes par une bidouille en JavaScript qui reconstruit la jolie URL cible et qui redirige le navigateur dessus, donc sans passer par les mécanismes standard des formulaires du navigateur. La conséquence de cette méthode c'est que je doute que la page cible soit indexée par un moteur de recherche.
    • Soit faire une maxibidouille avec mod_rewrite pour rediriger les navigateurs sur l'URL réécrite après soumission du formulaire. C'est peut-être ce qu'il y a de mieux mais ce n'est pas très beau, je trouve : ça fait faire un aller-retour supplémentaire avec le navigateur pour pas grand-chose, et n'empêche qu'un moteur de recherche (à condition qu'il suive le formulaire, ce qui n'est pas évident) verra sûrement en premier l'URL avec les paramètres et pourrait faire un duplicate content sur la jolie URL. Bref :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
      7
      RewriteEngine on
       
      RewriteCond %{QUERY_STRING} !internal=1
      RewriteCond %{QUERY_STRING} ^nb=([0-9]+)
      RewriteRule ^test\.php$ test-%1.html [R]
       
      RewriteRule ^test-([0-9]+).html$  test.php?nb=$1&internal=1 [L]
      Je ne suis pas sûr que ça marche parfaitement, je n'ai pas testé.

    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

Discussions similaires

  1. Réponses: 2
    Dernier message: 25/08/2009, 13h51
  2. Compréhention pour faire marcher un code qui génere une torche
    Par malicia_bm dans le forum ActionScript 3
    Réponses: 7
    Dernier message: 12/11/2008, 16h02
  3. aide pour faire marcher ce code
    Par ousmane158 dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 30/04/2008, 10h51
  4. Que faut-il pour faire marcher PMO ?
    Par code34 dans le forum PhpMyObject
    Réponses: 1
    Dernier message: 16/02/2008, 20h24
  5. Demande pour faire de l'URL Rewriting
    Par arnaud_verlaine dans le forum Apache
    Réponses: 2
    Dernier message: 15/06/2007, 10h11

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