+ Répondre à la discussion
Affichage des résultats 1 à 13 sur 13
  1. #1
    Invité de passage
    Inscrit en
    décembre 2012
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : décembre 2012
    Messages : 7
    Points : 0
    Points
    0

    Par défaut Comment faire un URL rewriting spécial ?

    Bonjour

    J'aimerai Utiliser Apache et PHP sur mon Synology pour faire la choses suivante:

    J'ai sur mon réseau local un périphérique qui émet régulièrement des requêtes (vers un site web externe ) de ce type
    http://www.meteo.fr/toto/tata/i?query=28806

    Je voudrais intercepter cette requête pour la remplacer par la requête suivante:
    http://www.meteo.fr/toto/tata/i?query=toulouse


    Quelle est la syntaxe de l'expression à mettre dans mon fichier .htaccess pour faire cet Url rewriting ?

    merci

  2. #2
    Rédacteur/Modérateur
    Avatar de _Mac_
    Inscrit en
    août 2005
    Messages
    9 486
    Détails du profil
    Informations forums :
    Inscription : août 2005
    Messages : 9 486
    Points : 12 771
    Points
    12 771

    Par défaut

    C'est très compliqué à faire. Il faudrait que ton périphérique fasse ses appels au travers d'un proxy que tu maîtrises et qui changerait l'URL. Rien à voir avec l'URL rewriting : l'URL rewriting c'est quand Apache reçoit une requête, pour modifier l'interprétation que ce serveur Apache doit faire de l'URL. Là, y a pas de serveur Apache en jeu, sauf peut-être celui du site meteo.fr que tu ne maîtrises pas, j'imagine.

    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
    Invité de passage
    Inscrit en
    décembre 2012
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : décembre 2012
    Messages : 7
    Points : 0
    Points
    0

    Par défaut

    Je ne pense pas que je puisse intervenir au niveau de mon peripherique

    Par contre est ce qu'il serait possible d'installer un proxy (type squid ou autre) sur mon synology pour faire cela ?




    Merci pour tes precision sur l'Url rewriting car effectivement je ne voyais pas trop comment le mettre en place

  4. #4
    Rédacteur/Modérateur
    Avatar de _Mac_
    Inscrit en
    août 2005
    Messages
    9 486
    Détails du profil
    Informations forums :
    Inscription : août 2005
    Messages : 9 486
    Points : 12 771
    Points
    12 771

    Par défaut

    Citation Envoyé par Facel Voir le message
    Je ne pense pas que je puisse intervenir au niveau de mon peripherique

    Par contre est ce qu'il serait possible d'installer un proxy (type squid ou autre) sur mon synology pour faire cela ?
    Possible mais on manque d'infos sur ce périphérique. En gros, si c'est un disque multimédia, il se peut qu'il propose déjà une interface Web pour l'accès en lecture aux fichiers. Dans ce cas, il suffirait de mettre en place un simple reverse proxy.

    Maintenant, si ce n'est pas le cas ou si c'est le cas mais que tu veux aussi un accès en écriture, il faut mettre en place un serveur WebDAV relié à ton disque.

    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
    Invité de passage
    Inscrit en
    décembre 2012
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : décembre 2012
    Messages : 7
    Points : 0
    Points
    0

    Par défaut

    euh non c'est pas un disque ....

    bon j'avoue tout c'est un thermostat ! il s'agit du Nest (www.nest.com)

    je viens juste de le recevoir et je n'ai pas encore tout testé

    il est possible d'y accéder a distance via une interface web, mais cela nécessite de s'enregistrer au préalable sur le site nest mais pour l"instant seuls les postcode US sont enregistrables sur ce site

    En fait ce thermostat récupère sur internet un fichier de données meteo afin de prendre en compte les températures externes ainsi que les previsions d'évolution de température
    Quelle solution serait envisageable pour contourner ce probleme ?

    en plus le nest est basé sur du linux ...(http://www.nest.com/ca/legal/compliance/)
    mais je ne sais pas dans quel mesure c'est ouvert (cf freebox)

  6. #6
    Rédacteur/Modérateur
    Avatar de _Mac_
    Inscrit en
    août 2005
    Messages
    9 486
    Détails du profil
    Informations forums :
    Inscription : août 2005
    Messages : 9 486
    Points : 12 771
    Points
    12 771

    Par défaut

    J'ai mélangé deux discussions, donc je disais n'importe quoi !!! Désolé

    Si c'est un truc américain, comme ça se fait qu'il fait des requêtes sur meteo.fr ?

    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
    Invité de passage
    Inscrit en
    décembre 2012
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : décembre 2012
    Messages : 7
    Points : 0
    Points
    0

    Par défaut

    Heu ... (Lieutenant) Mac (Taylor) je savais qu'aucun indice ne peut échapper à un expert, surtout lorsque les dossier tata/toto sont impliqués.

    Pour ma part je préférerais réserver mon témoignage à l'agent Bonasera

    mais tout ceci nous éloigne du sujet ... qui reste non solutionné

    comment intercepter une requête http pour en modifier un des paramètre ?

  8. #8
    Rédacteur/Modérateur
    Avatar de _Mac_
    Inscrit en
    août 2005
    Messages
    9 486
    Détails du profil
    Informations forums :
    Inscription : août 2005
    Messages : 9 486
    Points : 12 771
    Points
    12 771

    Par défaut

    L'histoire du truc américain qui appelle meteo.fr n'était pas particulièrement une bêtise : un tel truc appelerait plutôt weatherchannel.com ou autre, pas un bon site franchouillard. C'est donc que ce truc est paramétrable a minima. Donc l'idée est de trouver ce paramètre, de regarder autour et de voir si on peut changer le nom du paramètre d'URL. Parce que, je le répète, tu ne peux pas intercepter et modifier une requête HTTP dont "tu" n'es pas l'initiateur, sauf à faire en sorte de passer par un proxy spécialement fait pour.

    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
    Invité de passage
    Inscrit en
    décembre 2012
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : décembre 2012
    Messages : 7
    Points : 0
    Points
    0

    Par défaut

    effectivement il s'agit d'un site US

    la requete URL emise par l'appareil en question est du type :

    http://www.wunderground.com/auto/nes.../i?query=13666

    ou 13666 correspond à un code postal US entré comme parametre sur le site Nest

    la requête URL modifiée serait du type

    http://38.102.136.104/auto/nestlabs/...la+ciotat&MR=1

    cette requête retourne effectivement les bonnes info même si c'est via le compte nestlabs


    Effectivement comme tu me l'expliqué, l'url rewriting n'est pas la bonne technique - la bonne technique est pluto de resoudre l'adresse www.wunderground.com sur mon serveur apache qui lancera un script php pour modifier la requete comme je l'indique

  10. #10
    Rédacteur/Modérateur
    Avatar de _Mac_
    Inscrit en
    août 2005
    Messages
    9 486
    Détails du profil
    Informations forums :
    Inscription : août 2005
    Messages : 9 486
    Points : 12 771
    Points
    12 771

    Par défaut

    C'est une autre solution mais cela suppose que ton appareil, et uniquement lui, utilise un serveur DNS truqué qui indiquerait l'IP d'une machine à toi à la place de celle officielle de www.wunderground.com. Est-ce faisable ? Aucune idée, je ne connais pas l'appareil ni comment il chope d'IP du DNS.

    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
    Invité de passage
    Inscrit en
    décembre 2012
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : décembre 2012
    Messages : 7
    Points : 0
    Points
    0

    Par défaut

    Bon ça y est presque ...

    J'arrive à rediriger ma requête URL sur mon serveur apache
    je me retrouve avec la requête suivante

    http://www.wunderground.com/auto/nes.../i?query=28806


    J'ai mis en place mon script php dans un fichier index.php

    pour executer correctement mon script je doit modifier l'url en insérant /index.php/ juste après .com afin d'obtenir

    http://www.wunderground.com/index.ph.../i?query=28806

    donc si j'ai bien compris c'est la qu'intervient l'Url rewriting ...

    et j'en revient à ma question initiale Quelle est la syntaxe de l'expression à mettre dans mon fichier .htaccess pour faire cet Url rewriting ?

    est ce la bonne syntaxe ?

    Code :
    1
    2
    RewriteEngine On
    RewriteRule ^.com/auto/nestlabs$ .com/index.php/auto/nestlabs

    bon ben j'ai mise ces 2 lignes dans mon fichier .htaccess et ça ne marche pas !!!

  12. #12
    Rédacteur/Modérateur
    Avatar de _Mac_
    Inscrit en
    août 2005
    Messages
    9 486
    Détails du profil
    Informations forums :
    Inscription : août 2005
    Messages : 9 486
    Points : 12 771
    Points
    12 771

    Par défaut

    Non, tu n'es pas obligé d'insérer /index.php/ dans l'URL, comme tu dis. Il suffit d'appeler index.php :
    Code :
    1
    2
    RewriteEngine on
    RewriteRule ^auto/nestlabs/geo/current/i$ index.php [L]
    Avec ça, index.php sera directement appelé et récupèrera aussi le paramètre d'URL query ($_GET["query"]).

    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
    Invité de passage
    Inscrit en
    décembre 2012
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : décembre 2012
    Messages : 7
    Points : 0
    Points
    0

    Par défaut

    De retour de festoiements et ripailles je me replonge dans mon histoire d'url


    Bon en resumé ... ma syntaxe = 0 la Tete à Toto

    mais la syntaxe de Mac = ça maaaaaaaaaaaarche !!!


    Bon ben encore merci Mac , grâce à ton aide j'ai réussi à intercepte la requête émise par mon thermostat pour la modifier et récupérer les bonnes Infos ...


    Il ne me reste plus qu'à insérer au début de mon script php un test pour savoir si mon url contient bien la variable i?query parceque si j'essaye d'acceder à www.wunderground.com ça plante.

    test : si i?query ='' then => ouvrir directement le site de l'url que j'ai transmis
    else => executer mon script

    L'année 2012 va bien se terminer ... et 2013 bien commencer

    Bonnes fêtes

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

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •