[gull] Apache + mod_rewrite

Souchon Yann yann.souchon at elca.ch
Tue Jun 10 15:20:26 CEST 2003


Salut à tous,

Je possède un serveur web Apache avec un certificat SSL (par exemple
https://www.domain.com/).
J'ai différents projets (project1 et project2) qui sont hébergés dessus dans
des sous-répertoires (https://www.domain.com/project1/ et
https://www.domain.com/project2/).
Ces deux projets font partit du même virtualhost.

Je désire ajouter d'autres projets (project3) en utilisant toujours l'accès
via https://www.domain.com/project3/ mais avec un autre virtualhost.
Ce second virtualhost n'est pas visible depuis l'extérieur, mais seulement
en local.
Par exemple, le projet3 aurait comme host "local"
http://project3.domain.com/.

Les raisons de ces choix sont assez simples :

- n'avoir d'un certificat SSL valide
- réfinir ces certains directives PHP par intermédiaire de Apache (pour
cela, il faut un autre virtualhost).

Lorsque l'utilisateur entre https://www.domain.com/project3/, il doit partir
sur http://project3.domain.com/ tout en gardant
https://www.domain.com/project3/ dans son browser.

J'ai donc commencé par utiliser mod_proxy qui permet de faire ça, mais d'une
manière trop simple pour mon cas.
J'utilise maintenant mod_rewrite qui intégre mod_proxy lorsqu'on spécifie
[P] en fin de ligne.

Voici la directive que j'ai ajouté dans le virtualhost principal :

RewriteRule ^/project3/(.*)$	http://project3.domain.com/$1		[P]

Lorsque je fais ça, seul la homepage fonctionne correctement. Les autres URL
n'étant pas reécrites, ça ne fonctionne pas.
Mon idée est d'utiliser une condition pour forcer que tout soit reécrit :

RewriteCond %{???} 		project3
RewriteRule ^/(.*)$		http://project3.domain.com/$1 	[P]

Est-ce que quelqu'un aurait une idée quel élément je pourrais tester grâce à
RewriteCond pour que cela fonctionne ?
Il faut bien faire attention au fait qu'il y a plusieurs sites, et cet
élément doit être spécifique au projet3.

Meric d'avance pour votre aide,

A+

Yann



More information about the gull mailing list