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 :

Réécriture des URL


Sujet :

Apache

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 34
    Points : 29
    Points
    29
    Par défaut Réécriture des URL
    Je suis débutante et j'ai besoin de votre aide svp.
    Je veux faire une réécriture de URL.
    Je veux récupérer un numéro de téléphone en format international et le réécrit en URL sous format national.
    voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    RewriteCond %{REQUEST_URI}      ^/mon_url/
    RewriteCond     %{QUERY_STRING} (.*)num=33(.*) 
    RewriteRule     /mon_url/         /mon_url/?%1num=06%2 [PT]
    en sortie je récupère toujours le format international.

    Merci beaucoup pour votre aide

  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
    C'est dans un .htaccess ? Si oui, essaie en supprimant le premier / dans le premier membre de ta RewriteRule.

    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
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 34
    Points : 29
    Points
    29
    Par défaut
    merci Marc pour votre aide.
    je n'ai pas compris ta réposne
    mon_url => une partie de mon url comm "tuto" par exemple.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    RewriteCond %{REQUEST_URI}      ^/toto/
    RewriteCond     %{QUERY_STRING} (.*)num=33(.*) 
    RewriteRule     toto/         /toto/?%1num=06%2 [PT]
    mon fichier est en proxyin.conf

  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
    C'est super bizarre, je ne vois pas d'erreur dans ce que tu donnes. Deux choses :
    1. Essaie en ajoutant la ligne suivante avant tes Rewrite :
    2. Que signifie "en proxyin.conf" ?

    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
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 34
    Points : 29
    Points
    29
    Par défaut
    Merci Mac.

    ça ne fonctionne pas et je ne comprends pas pourquoi

    pour le fichier proxyin.conf => c'est un fichier de configuration ou on définit tous les règles de réécriture des URL.

  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
    C'est un fichier qui est en include dans httpd.conf ?

    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
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 34
    Points : 29
    Points
    29
    Par défaut
    oui c'est un fichier appelé par http.con

  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
    OK. C'est peut-être ça le souci car le comportement de mod_rewrite n'est pas le même dans un .htaccess et dans httpd.conf ou un fichier en include. Tu peux donner le contenu complet de ce fichier proxyin.conf ? J'essaierai ça chez moi ce soir.

    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
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 34
    Points : 29
    Points
    29
    Par défaut
    le fichier contient ce que j'ai mis.
    Merci pour votre aide.
    c'est bloquent vraiment, j'ai cherché par tout

  10. #10
    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
    Ajoute un RewriteEngine on avant ces 3 lignes. Avec ça, ça marche chez moi. Tu testes avec quelle URL ?

    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

  11. #11
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 34
    Points : 29
    Points
    29
    Par défaut
    merci mais ça n'a pas marché.

    GET /toto/?MCO=OFR&msisdn=33679209470.

    Donc je récupère toujours le format international.
    L'url que j'utilise est interne.

  12. #12
    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
    Ben, si tu mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteCond     %{QUERY_STRING} (.*)num=33(.*)
    il faut utiliser num comme nom de paramètre dans l'URL donc faire /toto/?MCO=OFR&num=33679209470...

    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

  13. #13
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 34
    Points : 29
    Points
    29
    Par défaut
    oui c'est bien num dans le REwriteCond.

    Faute de frappe de ma part:
    le résultat est toujours:
    /toto/?MCO=OFR&num=33679209470

    alors je veux avoir:/toto/?MCO=OFR&num=0679209470.

  14. #14
    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
    Ben je te montre ce que j'obtiens chez moi avec la conf que je t'ai donnée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    Array
    (
        [MCO] => OFR
        [num] => 06679209470
    )
    Array
    (
        [SCRIPT_URL] => /toto/
        [SCRIPT_URI] => http://localhost/toto/
        [HTTP_HOST] => localhost
        [HTTP_USER_AGENT] => Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0
        [HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
        [HTTP_ACCEPT_LANGUAGE] => en-us,en;q=0.5
        [HTTP_ACCEPT_ENCODING] => gzip, deflate
        [HTTP_CONNECTION] => keep-alive
        [PATH] => C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\TortoiseSVN\bin;C:\Program Files\QuickTime\QTSystem\
        [SystemRoot] => C:\WINDOWS
        [COMSPEC] => C:\WINDOWS\system32\cmd.exe
        [PATHEXT] => .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
        [WINDIR] => C:\WINDOWS
        [SERVER_SIGNATURE] => 
        [SERVER_SOFTWARE] => Apache/2.2.17 (Win32) PHP/5.3.5
        [SERVER_NAME] => localhost
        [SERVER_ADDR] => 127.0.0.1
        [SERVER_PORT] => 80
        [REMOTE_ADDR] => 127.0.0.1
        [DOCUMENT_ROOT] => D:/wamp/www/
        [SERVER_ADMIN] => admin@localhost
        [SCRIPT_FILENAME] => D:/wamp/www/toto/index.php
        [REMOTE_PORT] => 4121
        [GATEWAY_INTERFACE] => CGI/1.1
        [SERVER_PROTOCOL] => HTTP/1.1
        [REQUEST_METHOD] => GET
        [QUERY_STRING] => MCO=OFR&num=06679209470
        [REQUEST_URI] => /toto/?MCO=OFR&num=33679209470
        [SCRIPT_NAME] => /toto/index.php
        [PHP_SELF] => /toto/index.php
        [REQUEST_TIME] => 1338406916
    )
    Le code PHP de /toto/index.php est minimaliste :
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <html>
    <body>
    <pre>
    <?php 
    print_r($_GET);
    print_r($_SERVER);
    ?>
    </pre>
    </body>
    </html>
    Donc là, honnêtement, je n'ai plus d'idée. La seule idée qui me reste c'est d'activer les logs de mod_rewrite pour voir ce qu'il se passe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RewriteLog "un_repertoire_valide/rewrite.log"
    RewriteLogLevel 9
    A ajouter tout en haut de proxyin.conf. Tu redémarres Apache puis tu testes de nouveau et tu nous donnes le contenu du fichier rewrite.log.

    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

  15. #15
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 34
    Points : 29
    Points
    29
    Par défaut
    Merci beaucoup Mac pour votre aide.
    Le problème est fixé
    la règle était déclarée dans le mauvais endroit.
    merci une autre fois

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

Discussions similaires

  1. [Débutant] Réécriture des URL en .html
    Par M0nk' dans le forum Développement Web avec .NET
    Réponses: 1
    Dernier message: 09/10/2013, 19h14
  2. Réponses: 2
    Dernier message: 18/09/2013, 09h03
  3. Réécriture des URLs et traitement
    Par kamalalex dans le forum Apache
    Réponses: 1
    Dernier message: 29/07/2013, 21h34
  4. Réponses: 1
    Dernier message: 08/09/2011, 19h25
  5. [URL rewriting] Réécriture des dates
    Par gtraxx dans le forum Apache
    Réponses: 10
    Dernier message: 11/02/2011, 18h44

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