Sous domaine et rewriting

WRInaute occasionnel
Je ne sais pas si celà est possible dans le .htaccess.

Celà ressemble à une ORT web comme le proposent les réferers : un lien (visible dans ton cas, invisible en général pour cacher l'adresse sale chez un hébergeur gratuit).

Si c'était possible dans le .htaccess, pourquoi les hébergeurs le propose ? pour ceux qui ne savent pas faire de .htaccess ? possible.
 
WRInaute accro
Moi j'ai ça :
Code:
RewriteEngine on

# redirection des sous-domaines
RewriteCond %{REQUEST_URI} !^/sdoms
RewriteCond %{HTTP_HOST} ^([^.]*)\.?([^.]+).([^.]+)$ [NC]
RewriteCond %1 !^www$ [NC]
RewriteRule ^(.*)$ /sdoms/%1/$1

# fix trailing slash
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.+[^/])$ $1/ [L]
Avec sdoms qui est un dossier à la racine et qui contient le dossier forum.

Trouvé ici : http://forum.web1.fr/
 
WRInaute passionné
C'est a peut pres ce que je souhaite, sauf que, j'ai un url de ce type:

http://www.exemple.com/ablog/b.php?pseudo=membre

Et je voudrais que:

http://membre.exemple.com

redirige vers

http://www.exemple.com/ablog/b.php?pseudo=membre

Et je n'y comprend strictement rien a l'url rewriting?

D'hab sur les forum j'ai pour habitude de demander de me donner des pistes pour que j'y arrive tout seul, mais la pour etre claire, je demanderais de bien vouloir le faire a ma place, et ce dans le but de m'aider! (suis fatigué désolé si j'ai dit n'importe quoi et que mes phrases ne veulent rien dire)
 
WRInaute occasionnel
zimounet a dit:

Alors il devrait te suffire de faire :
Code:
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} ^(.+)\.[^\.]+\.[^\.]+$
RewriteRule ^(.*)$ h*tp://www.exemple.com/ablog/b.php?pseudo=%1 [R,L]

La 1ere ligne évite de traiter les urls commençant par www (comme ça on boucle pas)
La deuxième permet de récupérer le pseudo dans le nom de domaine (qui est stockée dans "%1" pour la suite)
La troisième fait la redirection. Le [R] est je crois obligatoire quand tu modifies la partie nom de domaine de l'URL...
 
WRInaute passionné
Merci ChezThierry, sa fonctionne!

Par contre, sur
h*ttp://www.exemple.com/ablog/b.php?pseudo=membre
Je ne recharge pas de page (c'est juste un petit frameset)

Et j'aimerais:

- Soit que le sous-domaine reste dans la barre d'adresse

- Soit simplifier l'url du genre h*ttp://www.exemple.com/-membre

ou meme h*ttp://www.exemple.com/?membre (ou si vous avez d'autres idée...)

Bref si je ne peux pas garder le sous domaine dans la barre d'adresse, pour l'application que j'en fais, ce n'est pas grave, meme si ce serais préférable, mais j'aimerais au moins simplifier l'url apres.

Merci a tous, et particulièrement a toi Thierry!
 
WRInaute occasionnel
Si xxx.example.com fonctionne exactement comme w*w.example.com, tu peux te passer du R, ça évitera que la barre d'adresse change.

Fais un test en remplaçant :
[R,L] par [L]
et
h*tp://www.exemple.com/ablog/....
par
ablog/....

Et on verra si le reste de ta config permet d'éviter de changer l'URL dans le navigateur directement. (en fait, pour que ça fonctionne, il faut que déjà, sans .htaccess, ton serveur apache soit configuré pour que membre.example.com et -www.example.com pointent sur la même arborescence.)
 
WRInaute passionné
Code:
RewriteEngine on 

RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} ^(.+)\.[^\.]+\.[^\.]+$
RewriteRule ^(.*)$ ablog/b.php?pseudo=%1 [L]

Quand je met ceci, en fait il semble que cela fonctionne a moitié, car apparement, php n'arrive plus a récupérer les variables php...

C'est compliquer a expliquer, en fait sur ma page ablog/b.php?pseudo=membre, va récupérer les infos du membres, les réafficher dans une frame supérieur (haut.php), et dans la frame inférieur afficher le blog du membre (d'une plateforme externe a mon site).

Et en fait la frame du bas s'affiche bien (donc l'adresse du blog selectionné dans la bdd ressort), mais dans la frame du haut sa merde (page blanche)
 
WRInaute passionné
ChezThierry a dit:
(en fait, pour que ça fonctionne, il faut que déjà, sans .htaccess, ton serveur apache soit configuré pour que membre.example.com et -www.example.com pointent sur la même arborescence.)

J'ai demandé a mon hébergeur (celeonet) et le wildcard (*) pour le sous domaine fonctionne, et est assimilé au sous domaine www (donc pointe a la racine de mon site)
 
WRInaute occasionnel
S'il y a des variables à transposer dans la nouvelle URL, il te suffit de remplacer [L] par [L,QSA]

ça ajoute à la variable que tu créé les variables passées initialement à ton URL, genre :
-http://membre.example.com/?var1=toto&var2=titi
donnera
sans QSA : -http://membre.example.com/ablog/b.php?pseudo=membre
avec QSA : -http://membre.example.com/ablog/b.php?pseudo=membre&var1=toto&var2=titi

C'est ça ton problème de variable qu'il n'arrive plus à récupérer ?
 
WRInaute passionné
bal la j'ai ceci:

Code:
RewriteEngine on 

RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} ^(.+)\.[^\.]+\.[^\.]+$
RewriteRule ^(.*)$ ablog/b.php?pseudo=%1 [L,QSA]

Et toujours le meme résultat: apparement il récupère certaines choses, mais sa créer un beugue, si tu veux je peux t'envoyer mon code php par MP...

En tout cas j'apprécie beaucoup ton aide, et je t'en remercie!
 
WRInaute occasionnel
Houla, non, je me sens pas le temps de débugger ton code php sur ce coup-là :)

Va falloir faire sans.

Tu n'as pas moyen de rajouter des tests dans ton code php pour voir ou ça déconne exactement (et préciser les cas exemples, genre "je tape ça, mais dans le code php, le $_GET['trucmachin'] est vide, etc..")
 
WRInaute passionné
Non je ne te demande pas de débugger mon code PHP, mais je suis pertinament sure qu'il fonctionne sans le rewriting.

Mais puisque tu n'as pas le temps d'y jeter un oeuil, et je le comprend tout a fait (tu as déjà fait beaucoup pour moi), je vais tout de meme faire des teste comme tu me le conseil ( et comme j'ai l'habitude de le faire ), je vais faire des echo partout de toutes les variables d'url.....


Voilu voili, je vous tiendrais au courant! ;)
 
WRInaute passionné
Bon je viens de réessayer la premiere version de notre htacces soit:

Code:
RewriteEngine on

RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} ^(.+)\.[^\.]+\.[^\.]+$
RewriteRule ^(.*)$ http://www.exemple.com/ablog/b.php?pseudo=%1 [R,L]

Et mon script php fonctionne!

Alors je ne comprend pas pourquoi avec notre derniere version soit:


Code:
RewriteEngine on

RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} ^(.+)\.[^\.]+\.[^\.]+$
RewriteRule ^(.*)$ ablog/b.php?pseudo=%1 [L,QSA]

Cela fonctionne a moitié!

:(
 
WRInaute occasionnel
Ok, un truc qu'on a pas vraiment regardé c'est que la règle en question s'applique à TOUS les liens, y compris ceux vers des .gif et autre.
Alors on refait une version qui cette fois-ci ne s'applique QUE à ton url sans fichier indiqué ensuite et ça devrait fonctionner bien mieux (le problème ne se pose pas avec l'autre version car on remet le www. d'entrée de jeu, donc les images ont un lien du bon type)

Essaye ça pour voir si ça résouds le "bug" :
Code:
RewriteEngine on

RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} ^(.+)\.[^\.]+\.[^\.]+$
RewriteRule ^$ ablog/b.php?pseudo=%1 [L]

Là, il n'agira normalement que sur l'URL suivante:
-http://membre.example.com
mais par
-http://membre.example.com/imagedumembre.gif

Est-ce le comportement attendu ?
 
WRInaute passionné
L'ennuie, c'est que http://pseudo.exemple.com redirige vers une page qui contient ceci:

Code:
//Des requetes pour récupérer les infos

<frameset rows="70,*" framespacing="0" frameborder="no" border="0">
<frame src="haut.php" name="topFrame" scrolling="NO" noresize >
//haut.php, contient lui aussi des requetes sql, et les affiche apres
<frame src="http://<? echo "$adresse"; ?>" name="mainFrame">
</frameset>


Donc avec cette version, j'ai une belle erreur 404 a la place de haut.php
 
WRInaute occasionnel
Et a quoi devait vraiment ressembler le lien vers haut.php au lieu de l'actuel -http://pseudo.example.com/haut.php du à notre rewrite ?
 
WRInaute passionné
:oops: Désolé, j'ai encore un peu de mal, mais cela fonctionne maintenant...

Peut a peut j'assimile, je comprend, et bientot je poserais plus de question lol

Encore merci @ toi pour ce coup ci!
 
WRInaute passionné
zimounet a dit:
J'ai demandé a mon hébergeur (celeonet) et le wildcard (*) pour le sous domaine fonctionne, et est assimilé au sous domaine www (donc pointe a la racine de mon site)

Bonjour zimounet

Ton hébergement chez celeonet c'est quel type d'offre (mutualisé ou (semi)dédié) ?

Qu'as-tu configuré d'autre pour que ces sous-domaines fonctionnent(config serveur...) ?

Merci et a+
 
Nouveau WRInaute
Salut à tous,

j'ai exactement les mêmes besoins que zimounet et moi aussi je ne maîtrise pas l'url rewriting...

Bref sur mon serveur cette option est activée mais quand j'essaie le code :
Code:
RewriteEngine on

RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} ^(.+)\.[^\.]+\.[^\.]+$
RewriteRule ^(.*)$ http://www.nx6.net/videoblog/voir.php?pseudo=%1 [R,L]

ça ne fonctionne pas... Page non trouvée...

plz help :)
 
Discussions similaires
Haut