Précédent   Forum du club des développeurs et IT Pro > Webmasters - Développement Web > Serveurs (Apache, IIS,...) > Apache
Apache Forum d'entraide Apache. Avant de poster : Cours Apache, FAQ Apache
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 14/12/2012, 16h25   #1
Facel
Invité de passage
 
Inscription : 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
Facel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2012, 21h30   #2
_Mac_
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 9 194
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 9 194
Points : 10 766
Points : 10 766
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
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2012, 23h14   #3
Facel
Invité de passage
 
Inscription : décembre 2012
Messages : 7
Détails du profil
Informations forums :
Inscription : décembre 2012
Messages : 7
Points : 0
Points : 0
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
Facel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2012, 20h58   #4
_Mac_
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 9 194
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 9 194
Points : 10 766
Points : 10 766
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
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2012, 23h28   #5
Facel
Invité de passage
 
Inscription : décembre 2012
Messages : 7
Détails du profil
Informations forums :
Inscription : décembre 2012
Messages : 7
Points : 0
Points : 0
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)
Facel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2012, 21h12   #6
_Mac_
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 9 194
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 9 194
Points : 10 766
Points : 10 766
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
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2012, 10h40   #7
Facel
Invité de passage
 
Inscription : décembre 2012
Messages : 7
Détails du profil
Informations forums :
Inscription : décembre 2012
Messages : 7
Points : 0
Points : 0
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 ?
Facel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2012, 21h37   #8
_Mac_
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 9 194
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 9 194
Points : 10 766
Points : 10 766
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
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2012, 14h46   #9
Facel
Invité de passage
 
Inscription : décembre 2012
Messages : 7
Détails du profil
Informations forums :
Inscription : décembre 2012
Messages : 7
Points : 0
Points : 0
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
Facel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2012, 21h45   #10
_Mac_
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 9 194
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 9 194
Points : 10 766
Points : 10 766
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
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2012, 11h15   #11
Facel
Invité de passage
 
Inscription : décembre 2012
Messages : 7
Détails du profil
Informations forums :
Inscription : décembre 2012
Messages : 7
Points : 0
Points : 0
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 !!!
Facel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/12/2012, 23h14   #12
_Mac_
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 9 194
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 9 194
Points : 10 766
Points : 10 766
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
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/12/2012, 09h43   #13
Facel
Invité de passage
 
Inscription : décembre 2012
Messages : 7
Détails du profil
Informations forums :
Inscription : décembre 2012
Messages : 7
Points : 0
Points : 0
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
Facel est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 11h53.


 
 
 
 
Partenaires

Hébergement Web