Aller au contenu

Sujets conseillés

Posté

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 :

#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 :(

Posté (modifié)

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 :

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

Donc je n'ai qu'un seul .htaccess

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]

Modifié par rat-du-net
Posté

C'est logique... parce que tu rediriges tout, y compris les pages www/* qui deviennent www/www/* , puis www/www/www/* etc... ;)

avant ta règle:

RewriteRule ^(.*)$   http://www.tondomaine.tld/www/$1  [QSA,L,R=301]

il faut mettre celle-ci:

RewriteRule www/(.*) - [L]

pour éviter de réécrire ces URLs :whistling:

Posté

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 :(

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]

Posté

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é ?

Posté

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.

Posté

merci !! j'ai cree un nouveau virtual host car je ne sais pas vraiment comment fonctionne l'autre technique.

plus besoin d'htaccess :D

un grand merci a vous

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...