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

8 réponses

  1. 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
  2. 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
  3. Utilisateur anonyme
     
    Exact !

    RewriteCond %{HTTP_HOST} ^(www\.monsite\.fr)$ ?
    0
  4. stephzan Messages postés 6 Statut Membre
     
    Je teste cette syntaxe ce soir quand je rentre.
    Merci pour ta réponse :)
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. 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
  7. 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
  8. 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
  9. Utilisateur anonyme
     
    OK a+ peut-être ;-}
    0