url rewriting pr ss-domaine: redirection sans modifier url

  • Auteur de la discussion Auteur de la discussion patami
  • Date de début Date de début
Nouveau WRInaute
salut

utilisant simplement cpanel pour mes sous domaines, je suis limité à 2 options :

1) sous-domaine standard, il pointe vers un sous-dossier du nom du sous domaine. Il agit comme un nom de domaine, la racine du site est donc considérée dans ce dossier.

2) sous-domaine redirectionnel, il ne pointe pas vers un sous-dossier du nom du sous domaine, mais vers un autre dossier au choix (voir autre url).
Problème : la redirection fonctionne bien, mais une fois arrivé sur la page cible, le sous-domaine dans l'url est remplacé par l'url cible de la redirection !


Je voudrais pour mon site pouvoir rediriger (donc 2e option) mes sous-domaines tout en les conservant dans l'url ! En demandant de l'aide à mon hébergeur, il m'a répondu que l'url rewriting permettait de faire cela. Il m'a donné cet exemple :

RewriteEngine on
RewriteCond %{HTTP_HOST} openstarme.com [NC]
RewriteCond %{REQUEST_URI} !/openstarme
RewriteRule (.*) /openstarme/$1 [L]

Je ne sais pas si c'est un simple exemple d'url rewriting ou si c'est la solution à mon problème .. je dois avouer ne pas comprendre ce code.

Notez que mon site est un portail, comportant plusieurs sections. Pour simplifier l'admin, j'ai un unique index.php, à la racine. Via des variables (index.php?section_ma_section) je définis le design et le contenu de cet index.php. Donc il me faudra plusieurs règles d'url rewriting (une règle spécifique par section) dans le même .htaccess !


Bref, comment puis-je procéder ?

merci d'avance

Patami
 
Nouveau WRInaute
j'ai pourtant essayé d'être le plus clair possible, avec des connaissances de base en php et sous domaines on peut comprendre

bon, n'ayant pas de réponses j'ai fouillé le net et les tutos

je pense y être arrivé ... je teste et je dis quoi ;)
 
Nouveau WRInaute
hi, me revoici

j'ai testé de nombreuses combinaisons, aucune n'a fonctionné ...

voici celle qui me semble la plus réaliste :

Code:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^ogame\.shadowsgate\.net$
RewriteCond %{HTTP_REFERER} !^$ [OR]
RewriteCond %{HTTP_REFERER} !^http://ogame\.shadowsgate\.net(.*)$ [NC]
RewriteCond %{REQUEST_URI} ^/index\.php\?(.*)$ [NC]
ReWriteRule ^http://ogame\.shadowsgate\.net/index\.php\?(.*)$ http://www.shadowsgate.net/index.php?$1&game=ogame  [L]


Quelle est ma faute ? Comment puis-je procéder ?
merci d'avance

Patami
 
WRInaute impliqué
Bon je comprtends ce que tu veux.
Il te faut raisonner en toute logique.
Ton sous domaine est donc hébergé autre part.
Explique quel fichier tu veux redirigé, vers où, etc.

ps: avec un ? dans ta condition request uri signifie que tu exclu un index.php seul...
 
Nouveau WRInaute
non, mon sous domaine n'est pas hébergé autre part.
Mais un sous-domaine pointe toujours vers un sous dossier. Or moi je veux qu'il pointe vers mon fichier index.php à la racine
C'est possible en faisant une redirection, mais alors mon url devient l'url cible, de redirection.

exemple pr que tu comprennes :

RewriteEngine on
RewriteCond %{HTTP_HOST} ^ogame.shadowsgate.net$ [OR]
RewriteCond %{HTTP_HOST} ^www.ogame.shadowsgate.net$
RewriteRule ^(.*)$ http://www.shadowsgate.net/index.php?game=ogame[R=301,L]


Là mon sous-domaine pointe bien vers l'index.php de la racine, mais seulement l'url devient http://www.shadowsgate.net/index.php?game=ogame.
Et moi je voudrais qu'elle reste http://ogame.shadowsgate.net tout en pointant vers l'index.php de la racine !

et je comprend pas ton ps, je met un ? pour vérifier que j'aurai bien des variables dans mon url. Je l'ai échappé pour ne pas qu'il soit considéré comme caractère spécial
note que ça ma justement posé problèmes dans les tests tout simple

en mettant ceci ça fonctionne :

RewriteEngine On
RewriteRule ^index\.php\?(.*)$ postinfo.html [L]


mais dès que je met un caractère après le ? ca marche plus
le final devant être :

RewriteEngine On
RewriteRule ^index\.php\?game=ogame(.*)$ postinfo.html [L]
 
WRInaute impliqué
Bon alors c´est simple:
Fait pointer ton sous domaine sur le repertoire racine c´est tout
Mais franchement, tu ne t´y retrouveras pas. Pourquoi ne pas mettre le sous domaine dans un repertoire? comme tout le monde ? :-)
 
Nouveau WRInaute
vu que comme ça lol
et bien comment faire ? :D
dans le cpanel, ils proposent uniquement un sous domaine dirigeant vers un sous dossier.
Je peux ensuite si je veux faire une redirection, mais pas changer l'endroit où pointe mon sous domaine

et si je le demande, c'est qu'il y a une raison :
ce n'est pas simplement vers l'index.php que je fais pointer, j'y ajoute une variable 'game' que je définis
soit index.php?game=ogame

pour toutes les sections de mon site portail, j'ai un seul index.php, ce qui est beaucoup plus pratique évidemment pour la gestion et le moteur du site en php ;)

Bref, comment changer le répertoire vers lequel pointe mon sous domaine ?
 
WRInaute impliqué
En fait, si il apparait que ton fichier est dans le domaine www,
il te faudra a chaque fois le renvoye par rw sur le sd. , puis appeler le bon fichier toujours par rw...
C´est pour cela que je te disait que c´était pas pratique
 
Nouveau WRInaute
et comment mettre ca en place ? (code :p)

j'aurais plutot pensé cfr mon essai plus haut chercher le mot "ogame" et non le fichier
mais est-ce possible que l'url rewriting ne recherche pas dans le domaine, seulement après ?
 
WRInaute impliqué
Dans ce cas, il te faut faire une redirection de subdomain vers le rep racine.
Et ne pas utiliser le rw pour changer la page d´index, mais plutot une variable serveur php...
 
Nouveau WRInaute
mes sous domaines me servent, je le répète :D, à définir la section dans laquelle je me trouve. Au lieu d'avoir au bout de toutes mes pages le nom de section, je procède ainsi ce qui est bcp plus joli et clair pour l'utilisateur

mais donc, tu me dis de rediriger mon nom de domaine, puis on change une var de type server pour retrouver ce sous domaine dans l'url

quelle var ? il y en a tellement :p

on peut modifier cela avec le rw ?
 
Discussions similaires
Haut