Version complète: sur le forum Webmaster Hub : Questions réécriture redirection
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > Fichier .htaccess et réécriture d'URLs
froidure_nicolas
Je cherche à faire la chose suivant :
Une redirection d'adresse http://www.truc.fr/
sur http://127.0.0.1/index.php?domaine=truc

Mais le problème, c'est que je veux aussi faire de la réécriture d'URL genre
http://www.truc.fr/page1.html
vers
http://www.truc.fr/?index.php?page=page1

Donc, il faudrait que à la fin, j'ai :
http://www.truc.fr/?index.php?domaine=truc&page=page1

Est-ce possible ?
ludodoludujodu
huuuuum hummmmmm je sais pas si tu es au courant mais tu ne pourra jamais faire une redirection vers http://127.0.0.1/.....3 car c'est l'adresse ip local de tout pc donc c'est imposible !!!
froidure_nicolas
J'ai failli modifier mon message pour pas avoir la remarque smile.gif

En utilisant 127.0.0.1, je voulais évidemment parler de l'adresse de mon serveur.
TheRec
Bonjour,

C'est "possible", mais ce n'est probablement pas le comportement que tu veux. Lorsque la deuxième partie de la RewritRule est une URL et non un chemin relatif, le moteur de réécriture procède à une redirection (301 par défaut) vers cette URL. Je dis que tu ne souhaites sûrement pas cela, parce que en redirigeant tes utilisateur vers "http://127.0.0.1/" tu les rediriges vers leur propre interface réseau.

127.0.0.1 ou localhost sont ce qu'on appelle des adresses de loopback (boucle interne) qui pointent sur linterfce réseau qui y fait appelle et donc avec cette règle tu suppose que l'utilisateur a un serveur HTTP (avec le http:// qui fonctionne sur sa propre machine...ce qui n'est certainement pas le cas.

Deuxième point, tu parles de rediriger "http://www.truc.fr/" sur une autre adresse, cela implique d'avoir le contrôle du serveur qui réponde à l'adresse "www.truc.fr"... Si c'est le cas tu peux utiliser un RedirectMatch :
CODE
RedirectMatch ^/$ http://<le_domaine_que_tu_souhaites>/index.php?domain=valeur_fixe


Et il faudra faire de même pour chaque domaine... tu ne peux pas gérer des noms de domaines à distance (depuis un autre serveur) par un fichier .htaccess ... si c'était possible je te laisse imaginer le désodre qui règnerait sur Internet...

Tu peux en revanche faire pointer tes domaines vers le même serveur (gérer cela avec des entrées DNS) et sur ce serveur t'occuper de cette tâche avec des hôtes virtuels dans la configuration Apache de ce serveur :
CODE
<VirtualHost *:80>
ServerAlias www.truc.fr
DocumentRoot /chemin/vers/la/racine/pour/ce/domaine/
</VirtualHost>

<VirtualHost *:80>
ServerAlias www.truc2.fr
DocumentRoot /chemin/vers/la/racine/pour/ce/deuxieme/domaine/
</VirtualHost>

Mais peut-être que j'ai mal compris ce que tu voulais... il me semble que tu sautes un peu du phoque à l'âne dans tes explications wink.gif
ludodoludujodu
donc si tu veux faire "une redirection" il te faut acheter un nom de domaine au près d'un registrar et te renseigner pour avoir l'adresse des serveurs dns de ton hébergeur
froidure_nicolas
Pour l'adresse, j'ai mis 127.0.0.1 car j'ai pas encore de serveur on-line, j'ai mis ça pour que vous compreniez qu'il s'agissait d'un serveur Web arbitrairement nommé tout comme truc.fr n'est pas un nom de domaine à moi...

Sinon, c'est à peu près ce que je veux TheRec, mais je souhaite savoir ce qui transparaît chez le visiteur. Je souhaite que les URL dans la barre d'adresse du visiteur soient toujours du type :
http://www.truc.fr/page1.html

Et que le document soit généré avec :
http://(IP du serveur commun smile.gif )/index.php?site=truc&page=page1

Et donc, je n'aurai qu'un script index.php pour truc.fr et bidule.net.

Vous voyez ce que je veux dire ?
froidure_nicolas
Heu, dois-je croire que mon problème est insoluble ?
froidure_nicolas
En fait, je veux faire ça :

CODE
<VirtualHost *:80>
ServerAlias www.truc2.fr/bidule.html
DocumentRoot /chemin/vers/la/racine/pour/ce/deuxieme/domaine/index.php?site=truc2&href=bidule
</VirtualHost>


Mais je veux que je visiteur ne voie pas ça et que seul ceci : www.truc2.fr/bidule.html
apparaisse dans sa barre d'adresse. Je veux, de plus, que cela soit valable pour tout x et y de manière à ce que www.x.fr/y.html renvoie vers index.php?site=x&href=y
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.