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 :

Comment faire un URL rewriting spécial ?


Sujet :

Apache

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 7
    Points : 1
    Points
    1
    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
    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 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
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 7
    Points : 1
    Points
    1
    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
    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 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
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 7
    Points : 1
    Points
    1
    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
    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
    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
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 7
    Points : 1
    Points
    1
    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
    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
    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
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 7
    Points : 1
    Points
    1
    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
    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 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
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 7
    Points : 1
    Points
    1
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    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
    Non, tu n'es pas obligé d'insérer /index.php/ dans l'URL, comme tu dis. Il suffit d'appeler index.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 7
    Points : 1
    Points
    1
    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.

Discussions similaires

  1. Comment activer l'URL Rewriting dans Apache ?
    Par geeka dans le forum Apache
    Réponses: 1
    Dernier message: 10/06/2015, 14h46
  2. [URL rewriting] Comment faire dans un sous dossier
    Par pierrot10 dans le forum Apache
    Réponses: 1
    Dernier message: 11/02/2012, 18h41
  3. [URL Rewriting] Redirection 301, comment faire ?
    Par Kotik dans le forum Apache
    Réponses: 3
    Dernier message: 05/08/2010, 16h11
  4. [URL rewriting] Comment faire avec les è é
    Par pierrot10 dans le forum Apache
    Réponses: 1
    Dernier message: 02/05/2010, 21h33
  5. Comment créer une URL Rewriting dans un sous-repertoire ?
    Par Alexandrebox dans le forum Apache
    Réponses: 1
    Dernier message: 26/03/2009, 20h44

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