Url rewriting + sous domaine + sans modif URL

Nouveau WRInaute
Salut à tous,

Ayant retourné le forum en quêtes de réponses ou de pbs similaire me voici en train de poster :p

J'aimerais que:
- Mes sous domaines www v0-7 v0-8 ne soit pas modif
- Mes autres sous domaines de la forme:
http://sousdomaine.nom-domaine.com/
pointent vers
http://www.nom-domaine.com/sousdomaine
mais que l'URL du navigateur ne change pas
- Que mes sous domaine qui ne peuvent pointer vers le répertoire correspondant (404) soit renvoyé vers:
http://www.nom-domaine.com/

Bref après mainte recherches et lectures me voici arrivé à ça ...

Code:
DirectoryIndex index.php
Options +FollowSymlinks
RewriteEngine on 
RewriteCond %{HTTP_HOST} !^(www|v0-7|v0-8).nom-domaine.com [NC]
RewriteCond %{HTTP_HOST} ^([a-zA-Z0-9-*+_]+).nom-domaine.com [NC]
RewriteRule (.*) http://www.nom-domaine.com/%1 [QSA,L] 
ErrorDocument 404 http://www.nom-domaine.com

Tout fonctionne comme je veux sauf ... l'URL du navigateur change.

Quelqu'un pourrait éclairer ma lenterne ? :aie: merci d'avance
 
WRInaute impliqué
je pense que tu dois régler ça au niveau de ta config apache, les vitualhost et compagnie...je pense !

un truc du genre(c'est juste un exemple) :

Code:
<VirtualHost x.x.x.x:80>
        ServerAdmin webmaster@example.com
        DocumentRoot /home/example/www
        SuexecUserGroup exampleusers
        ServerName www.example.com
        ServerAlias example.com
        ServerAlias *.example.com
        VirtualDocumentRoot /home/example/www/%1
        CustomLog logs/direct-access_log combined
        ScriptAlias /cgi-bin/ /home/direct/cgi-bin/
	AddHandler x-httpd-php4 .php
</VirtualHost>
 
WRInaute impliqué
Si tu change de domaine dans une règle la redirection devient visible à l'extérieur.

Il ne faut donc pas changer de domaine (ou de sous domaine). En plus tu perdais la page dans ta règle, il faut utiliser $1 pour la référencer:

Code:
DirectoryIndex index.php
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^([a-zA-Z0-9-*+_]+).nom-domaine.com [NC]
RewriteCond %{HTTP_HOST} !^(www|v0-7|v0-8).nom-domaine.com [NC]
RewriteRule (.*) /%1/$1 [QSA,L]
ErrorDocument 404 http://www.nom-domaine.com

J'ai aussi interverti les deux conditions pour etre sur que %1 contient le nom du sous domaine.

Il faut en plus que les sous domaines que tu redirige pointent vers le même espace disque que ton www.
 
Discussions similaires
Haut