Rewrite en fonction du domaine

Consultez la formation URL Rewriting et sites dynamiques de WebRankInfo / Ranking Metrics


awelty
Nouveau WRInaute
 
Messages: 25
Inscription: Lun Fév 27, 2006 17:20

Rewrite en fonction du domaine

Message le Lun Juin 25, 2007 14:22

Bonjour à tous,

Voici mon problème : je fais pointer plusieurs domaines vers la racine de mon site et avec un .htaccess je souhaite donner des règles de rewrite différentes selon le domaine. J'ai cherché longuement et fais plusieurs tests mais je n'y arrive pas. Il me semble qu'il faut utiliser REWRITECOND mais je n'ai pas réussi à m'en servir.

Pour schématiser mon probleme, Si je devais le faire en php je ferais ceci par exemple :

if(domaine == 'domaine1.com')
{
RewriteRule ^news.html$ site/index.php?num=2&site=domaine1 [L]
RewriteRule ^accueil.html$ site/index.php?num=1&site=domaine1 [L]
RewriteRule ^page.html$ site/index.php?num=3&site=domaine1 [L]
}
elseif(domaine == 'domaine2.com')
{
RewriteRule ^news.html$ site/index.php?num=2&site=domaine2 [L]
RewriteRule ^accueil.html$ site/index.php?num=1&site=domaine2 [L]
RewriteRule ^page.html$ site/index.php?num=3&site=domaine2 [L]
}
else
{
RewriteRule ^news.html$ index.php?num=2 [L]
RewriteRule ^accueil.html$ index.php?num=1 [L]
RewriteRule ^page.html$ index.php?num=3 [L]
}


Merci d'avance pour votre aide !!


Leonick
WRInaute accro
WRInaute accro
 
Messages: 12326
Inscription: Dim Aoû 08, 2004 20:24

Re: Rewrite en fonction du domaine

Message le Lun Juin 25, 2007 18:14

awelty a écrit:if(domaine == 'domaine1.com')
:arrow:
Code: Tout sélectionner
RewriteCond %{HTTP_HOST} ^domaine1.com$


awelty
Nouveau WRInaute
 
Messages: 25
Inscription: Lun Fév 27, 2006 17:20

Message le Lun Juin 25, 2007 19:04

Oui, c'est déjà sur quoi j'étais arrivé :

Code: Tout sélectionner
RewriteCond %{HTTP_HOST} ^domaine1\.net
RewriteRule   ^index.html$   site/index.php?login=domaine1  [L]



Mais après? le rewrite suivant ne sera plus lié au REWRITECOND? et comment faire le "else" ?


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3324
Inscription: Mar Nov 16, 2004 18:27

Message le Mer Juin 27, 2007 8:24

>> Pour schématiser mon probleme, Si je devais le faire en php je ferais ceci par exemple :

Parfait!! tu peux le faire en php, tu iras plus vite a coder. Au passage: pas de "else" en .htaccess. 1 seul test de condition avec (if)


awelty
Nouveau WRInaute
 
Messages: 25
Inscription: Lun Fév 27, 2006 17:20

Message le Jeu Juin 28, 2007 14:39

Comment je peux faire ? Je ne peux pas génerer un .htaccess en php ??


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3324
Inscription: Mar Nov 16, 2004 18:27

Message le Jeu Juin 28, 2007 18:31

awelty a écrit:Je ne peux pas génerer un .htaccess en php ??


tu peux ecrire un fichier .htaccess avec la fonction fwrite de php. Mais tu ne peux pas integrer des commandes .htaccess directement dans du php. Puis je sais pas trop comment t'aider car je ne comprend pas exactement ce que tu veux faire.


awelty
Nouveau WRInaute
 
Messages: 25
Inscription: Lun Fév 27, 2006 17:20

Message le Ven Juin 29, 2007 17:55

Ce que je veux c'est que en fonction du domaine (tous les domaines pointent à la racine, là où se trouve le .htaccess) qui appelle la page, on arrive sur page différente

par exemple, sur chaque domaine on accède via index.html, mais le chemin est différent.

exemple pour domaine1.com ca sera index.php
pour domaine2.com site/index.php?domaine=domaine2
pour domaine3.com site/index.php?domaine=domaine3
...

Je veux donc que des regles de rewrite différentes s'appliquent selon le domaine. Sachant que pour chaque domaine il y a plusieurs règles de rewrite.


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3324
Inscription: Mar Nov 16, 2004 18:27

Message le Sam Juin 30, 2007 11:33

awelty a écrit:Ce que je veux c'est que en fonction du domaine (tous les domaines pointent à la racine, là où se trouve le .htaccess) qui appelle la page, on arrive sur page différente


La je ne suis pas du tout.

Chez moi, 1 domaine = 1 ftp.

Mais toi tu me dis que : x domaines = 1 ftp
tu as tous tes domaines qui pointent sur la meme racine ? comment est-ce possible et gerable une telle bête ??


awelty
Nouveau WRInaute
 
Messages: 25
Inscription: Lun Fév 27, 2006 17:20

Message le Sam Juin 30, 2007 13:22

Ce n'est pas la question que ce soit ingérable. 8O Car ca le sera pas, à chaque domaine ajouté, le .htaccess sera regenéré automatiquement. :D

Seulement, je veux juste savoir comment faire une condition sur un ensemble de règles de rewrite pour mettre cela au point :cry:


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3324
Inscription: Mar Nov 16, 2004 18:27

Message le Dim Juil 01, 2007 12:31

donc il te faut créer un fichier a chaque fois ? mais ca ne marchera jamais car le moteur php va d'abord pointer sur le .htaccess et ensuite sur il executera le php.

J'ai pris 5 minutes et je t'en ai monter une partie, le tout appuyer sur un tuto que j'ai fait :

http://www.phpsources.org/tutoriel-fichiers.htm#part_4

Code: Tout sélectionner
<?php

$f = '.htaccess';
$text = 'RewriteRule ^news.html$ site/index.php?num=2&site=domaine1 [L]';
$text .= '/n';
$text .= 'RewriteRule ^news.html$ site/index.php?num=2&site=domaine1 [L]';
$text .= '/n';
$text .= 'RewriteRule ^news.html$ site/index.php?num=2&site=domaine1 [L]';


$handle = fopen($f,"r");

  if ($_SERVER['HTTP_HOST'] == 'domaine1.com')
// Ecriture
    if (fwrite($handle, $text) === FALSE) {
      echo 'Impossible d\'écrire dans le fichier '.$f.'';
      exit;
    }
   }
    echo 'Ecriture terminé';
   
    fclose($handle);
?>


Mais comme dit + haut, pour moi ca ne peut pas marcher a moins de creer le .htaccess et ensuite de refaire un header sur le domaine.

genre :
fwrite($handle, $text);
header("location:http://www.mondomaine1.com");


awelty
Nouveau WRInaute
 
Messages: 25
Inscription: Lun Fév 27, 2006 17:20

Message le Lun Juil 02, 2007 11:03

C'est sympa, mais mon probleme se situe + au niveau de la structure du .htaccess que de la génération en php du .htaccess.

Et là, je n'ai toujours aucune piste à ce niveau...


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3324
Inscription: Mar Nov 16, 2004 18:27

Message le Lun Juil 02, 2007 12:09

- tu ne peux pas faire de else en .htaccess
- tu genere un fichier .htaccess selon le domaine d'ou ton visiteur vient. Tu vas m'expliquer comment tu va faire pour qu'1 visiteur venu d'un autre domaine lise le sien et pas celui du premier.

perso je dis que c'est impossible. Tu ne peux avoir qu'1 .htaccess et meme si t'arrive a recharger la page, pas sur que le navigateur accepte le nouveau .htaccess et tu auras forcement des gros problemes en cas de traffic a reecrire le meme fichier, surtout .HTACCESS!! ca va faire meuh ton serveur!!


awelty
Nouveau WRInaute
 
Messages: 25
Inscription: Lun Fév 27, 2006 17:20

Message le Mar Juil 17, 2007 19:17

En fait, la seule solution est de mettre un RewriteCond %{HTTP_HOST} ^([^.]*)\.?domaine\.net devant chaque ligne de mon htaccess et ça fonctionne.. Un peu contraignant mais apparament pas le choix.

Il n'y a pas moyen de grouper plusieurs lignes à un "RewriteCond" plutot que de le placer au dessus de chaque ligne ?


Formation recommandée sur ce thème :

Formation URL Rewriting et sites dynamiques : apprenez comment mettre en place la réécriture d'URL, comment optimiser vos URL et profiter de vos pages dynamiques pour booster votre référencement. Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité