Version complète: sur le forum Webmaster Hub : Rewriting vers un repertoire
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > Fichier .htaccess et réécriture d'URLs
rat-du-net
Bonjour,

j'aimerais rewriter des url de ce type :

http://www.exemple.com/fichier1.html vers http://www.exemple.com/www/fichier1.html

Voila ce que j'ai fait :

CODE
#si je suis sur le portail
RewriteCond %{HTTP_HOST} ^www\.exemple\.com$ [NC]
RewriteRule ^(.*)$   /www/$1  [QSA,L,R=301]


Seulement, je me retrouve abev une url du type :

http://www.exemple.com/www/www/www/www/www...w/fichier1.html

je comprend pas sad.gif
theonlydrayk
Essaie plutot quelque chose comme ca :

CODE
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^(.*)   http://www.tonsiteweb.com/tondossier/$1  [QSA,L,R=301]
rat-du-net
ca me fait exactement la meme chose sad.gif
theonlydrayk
Donne ton .htaccess complet et tes sous dossier

si la page est http://www.exemple.com/test/aaa.html

Donne les 2 .htaccess complet
http://www.exemple.com/test/.htaccess
http://www.exemple.com/.htaccess
rat-du-net
alors en fait, j'ai :

/
/index.html
/www/
/www/index.html

j'aimerais que dans le cas ou je suis sur le sous domaine www que ce soit /www/index.html qui soit affiché, par contre, quand c'est un autre sous domaine, que ce soit /index.html qui soit affiché.

C'est pour ca que j'ai mis :

CODE
RewriteCond %{HTTP_HOST} ^www\.exemple\.com$ [NC]


Donc je n'ai qu'un seul .htaccess

CODE
Options +FollowSymlinks
RewriteEngine On
RewriteBase /
#si je suis sur le portail
RewriteCond %{HTTP_HOST} ^www\.exemple\.com$ [NC]
RewriteRule ^(.*)   http://www.exemple.com/www/$1  [QSA,L,R=301]
Dan
C'est logique... parce que tu rediriges tout, y compris les pages www/* qui deviennent www/www/* , puis www/www/www/* etc... wink.gif

avant ta règle:
CODE
RewriteRule ^(.*)$   http://www.tondomaine.tld/www/$1  [QSA,L,R=301]

il faut mettre celle-ci:
CODE
RewriteRule www/(.*) - [L]


pour éviter de réécrire ces URLs whistling.gif
rat-du-net
Voila mon htaccess

Donc, j'ai le portail qui se trouve dans un repertoire www, et un forum qui se trouve a la racine.

J'aimerais donc que l'orsque l'on tape www comme sous domaine, on affiche se qu'il y a dans le repertoire www et que quand le sous domaine est n'importe quoi d'autre, on affiche ce qu'il y a a la racine.

Actuellement, je suis redirigé vers www quelque soit le sous domaine et en plus, j'ai une redirection, pas une reecriture d'url, c'est a dire que mon url dans la barre d'adresse change.

Je ne vois pas du tout comment faire sad.gif

CODE
Options +FollowSymlinks
RewriteEngine On
RewriteBase /
RewriteRule ^.+/([^/]+\.html)$ /index.php [R=301,L]
RewriteRule ^.+-vc([0-9]+)\.html$ /index.php?c=$1 [QSA,L]
RewriteRule ^.+-vf([0-9]+)-([0-9]+)\.html$ /viewforum.php?f=$1&start=$2 [QSA,L]
RewriteRule ^.+-vf([0-9]+)\.html$ /viewforum.php?f=$1 [QSA,L]
RewriteRule ^.+-vt([0-9]+)-([0-9]+)\.html$ /viewtopic.php?t=$1&start=$2 [QSA,L]
RewriteRule ^.+-vt([0-9]+)\.html$ /viewtopic.php?t=$1 [QSA,L]
RewriteRule ^post([0-9]+)\.html$ /viewtopic.php?p=$1 [QSA,L]
RewriteRule ^membre([0-9]+)\.html$ /profile.php?mode=viewprofile&u=$1 [QSA,L]

#si je suis sur le portail
RewriteCond %{HTTP_HOST} ^www\.exemple\.com$ [NC]
RewriteRule www/(.*) - [L]
RewriteRule ^(.*)   http://www.exemple.com/www/$1  [QSA,L,R=301]
Dan
Là ce n'est plus du tout ce que tu décrivais dans ton post initial.
Pour traiter les sous-domaines, il te faudra d'abord éditer la zone bind, et ensuite créer un VirtualHost sous Apache.

Tu es sur serveur dédié ?
rat-du-net
oui j'ai utilisé les wildcards et actuellement, quelque soit le sous domaine tapé, j'arrive a la racine du site
Dan
En plus du wildcard DNS il te faut aussi gérer ces sous-domaines sous Apache.

Là tu as deux options:
Soit tu définis un <VirtualHost> par sous-domaine, soit il faut installer un module Apache: vhost_alias.

Une fois que tu auras installé ce module, tu pourras utiliser des <VirtualDocumentRoot> pour tes sous-domaines.
rat-du-net
merci !! j'ai cree un nouveau virtual host car je ne sais pas vraiment comment fonctionne l'autre technique.

plus besoin d'htaccess biggrin.gif

un grand merci a vous
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.