Rewriting htaccess en fonction du http_host

stephzan Messages postés 6 Statut Membre -  
 Utilisateur anonyme -
Bonjour à tous,

Je cherche à afficher tel ou tel dossier en fonction du http_host via un htaccess
N'étant pas un pro du htaccess, après un petite recherche, je commence à comprendre le système, mais ça ne marche pas :(

J'arrive à le faire en fonction d'une chaine, par ex
RewriteRule ^accueil$ /index.php [L]

Mais dès que j'essaye avec un rewriteCond sur le HTTP_HOST, ça foire :(

Voici ce que j'essaye:
Options +FollowSymlinks
RewriteEngine on

RewriteCond %{HTTP_HOST} monsite.fr
RewriteRule (.*) /www_fr/index.php [L]

RewriteCond %{HTTP_HOST} monsite.nl
RewriteRule (.*) /www_nl/index.php [L]

Cela me donne une erreur 500


Quelqu'un a-t-il un conseil pour me mettre sur la bonne voie SVP?

Merci d'avance pour vos réponses

Steph

A voir également:

8 réponses

Utilisateur anonyme
 
Et çà ?

Options +FollowSymlinks 
RewriteEngine on 

RewriteCond %{REQUEST_FILENAME} monsite.fr 
RewriteRule ^(.*)$ /www_fr/index.php [L] 

RewriteCond %{REQUEST_FILENAME} monsite.nl 
RewriteRule ^(.*)$ /www_nl/index.php [L] 
0
stephzan Messages postés 6 Statut Membre
 
Merci pour ta réponse, ça ne convient pas, ça n'a aucun effet.
RewriteCond %{REQUEST_FILENAME} ne convient-il pas si on cherche un fichier précis?
ex: RewriteCond %{REQUEST_FILENAME} monfichier.php
0
Utilisateur anonyme
 
Exact !

RewriteCond %{HTTP_HOST} ^(www\.monsite\.fr)$ ?
0
stephzan Messages postés 6 Statut Membre
 
Je teste cette syntaxe ce soir quand je rentre.
Merci pour ta réponse :)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
stephzan Messages postés 6 Statut Membre
 
En fait ce n'est pas le rewriteCond qui foire c'est la rewriteRule:
RewriteRule ^(.*)$ /www_nl/index.php [L]
Si je remplace (.*) par un module précis ça fonctionne
par ex
www.monsite.nl/home
RewriteCond %{HTTP_HOST} ^(www\.monsite\.nl)$
RewriteRule ^home$ /www_nl/index.php [L]
Ca marche
Dès que je remets ^(.*)$ au lieu de ^home$ => erreur 500

Une idée pour une syntaxe différente?
0
Utilisateur anonyme
 
Et comme cela ?
RewriteRule (.*) /www_nl/index.php [L] 


Quand je teste la regex ^(.*)$, ça ne fonctionne pas ( erreur de syntaxe ).
Mais c'est bizarre, je l'utilise aussi et ça fonctionne très bien... un exemple d'un de mes fichiers .htaccess :
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?p=$1  [QSA,L]


C'est chaud de trouver sans pouvoir tester en direct
0
stephzan Messages postés 6 Statut Membre
 
Bonjour,
Merci pour tes réponses.
J'ai aussi erreur 500 comme ça...
J'ai vraiment un problème avec ^(.*)$
Je suis certain que ta première proposition est censée fonctionner.
... un problème de version d'apache ou autre...???... je sèche.

mais vu que je devais mettre en ligne j'ai opté pour la solution "manuelle":
RewriteCond %{HTTP_HOST} monsite.nl
RewriteRule ^home$ /index.php [L]
RewriteRule ^poll$ /sondage.php [L]
....
Et ainsi de suite avec tous mes modules....

C'est pas le top niveau code, chaque fois que je vais ajouter un module je vais devoir l'ajouter dans le htaccess... mais ça fonctionne.

Encore merci d'avoir pris du temps. Si jamais j'en apprends plus, promis je mettrai à jour ce poste ;)

++
0
Utilisateur anonyme
 
OK a+ peut-être ;-}
0