Skip to content. Skip to navigation

la mont pagnotte familly

Personal tools
You are here: Home HowTo's Open Source le serveur web Apache et ses desecendants URL Rewriting de sous domaine avec apache2
Document Actions

URL Rewriting de sous domaine avec apache2

by julien last modified 2008-03-20 14:02

tutorial pour utiliser l'url rewritting d'apache par le biais d'un exemple simple de reecriture repertoire <-> sous domaine

Index
  1. prerequis
    il y a quelques petites choses a verifier pour que ce tutorial soit efficace.
  2. Regle de rewritting

Synopsis

Avant de commencer, il convient d'illustrer plus precisement ce que nous souhaitons faire dans cet exemple.

Disons que nous avons un simple espace web (Virtualhost) defini dans notre apache qui serait associé à un domaine domaine.tld. Pour chaque repertoire compris dans la racine (documentroot), chaque repertoire va etre directement accessible via une url du type repertoire.domaine.tld grave a nos regles de reecriture.

prerequis

il y a quelques petites choses a verifier pour que ce tutorial soit efficace.

Dans un premier temps nous allons devoir faire une modification dans les ZONE DNS de notre domaine afin de pouvoir faire des sous domaines virtuels.

Vérifier la présence de cette enregistrement dans votre zone DNS, si elle n'existe pas il faut la créer sans quoi les sous domaines virtuels ne fonctionneront pas.

 *       IN      A       IP-DU-SERVEUR
Le “*” veut dire que toutes les requêtes *.domaine.tld (nimportequoi.mondomaine.tld) doit pointer vers IP-DU-SERVEUR

Il faut également que *.domaine.tld soit déclaré convenablement dans la configuration du Vhost:

ServerAlias *.mondomaine.tld

Pour vérifier si la zone DNS est bien en place, tapez dans votre navigateur favoris l'adresse suivante test.votredomaine.tld, vous devez logiquement vous retrouvez sur l'index de http://www.domaine.tld, si ce n'est pas le cas la zone DNS ou le virtualhost sont mal configuré.

Regle de rewritting

Dans un deuxième temps, si jusque là vous n'avez pas rencontré de problèmes nous allons modifier le Virtualhost pour que la notion de sous domaines virtuels trouve tout son sens.

Pour cela, nous allons donc ajouter la regle suivante:

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.domaine.tld
RewriteCond %{HTTP_HOST} ^(.*).domaine.tld
RewriteMap lower int:tolower
RewriteRule ^(.+)$ ${lower:%{HTTP_HOST}}_$1 [C]
RewriteRule ^(www\.)?([^_]+)_(.*)$ $2_$3 [E=HTTP_HOST_BASE:$2]
RewriteRule ^([a-z0-9\-]+)\.domain\.tld\_(.*)$ /var/www/domaine.tld/docs/$1$2 [L]
Notez bien que nous utilisons le chemin absolu dans la derniere ligne.

Il faut ici connaitre un minimum les expressions rationnelles ou regexp pour les intimes afin de comprendre ce qui est fait.

Pour ceux que ca n'interesse pas, sachez simplement que ces regles vont permettre de joindre n'importe quel repertoire du site domaine.tld directement via l'url http://repertoire.domaine.tld et http://www.repertoire.domaine.tld

Pour les autres voila les explications:

La premiere ligne "RewriteEngine On" active simplement la reecriture pour le Virtualhost concerné.

La seconde est une condition pour notre regle de reecriture qui va permettre de ne pas faire de reecriture si nous avons www.domaine.tld (en effet nous n avons pas ici un repertoire www)

la troisieme donne la forme que doit avoir l'url pour la reecriture, il s'agit donc de nimporte quoi suivi de .domaine.tld

la suivante sert a reecrire l'url en minuscule pour pas qu il n'y ait de confusions avec les majuscules.

Les trois dernieres sont les regles de reecritures plus particulierement. Notez bien que nous separons le tout en deux separé par un underscore afin de determiner l'url et les pages situés en aval.

Cette reecriture est assez compliqué mais elle est utilisé parfois de maniere plus simple; aussi voici quelques exemples avec la definition de ce qu'ils font.


RewriteEngine on
RewriteRule ^old\.html$  new.html
cela réécrit old.html par new.html de maniere transparente sans que le client puisse s'en douter.

Categories :
WINDOWS
howto
OPENSOURCE
LINUX
del.icio.us tags: WINDOWS howto OPENSOURCE LINUX
Technorati tags: WINDOWS howto OPENSOURCE LINUX
Navigation
Log in


Forgot your password?
New user?
nuage de tags
RSS feed of this listing Les derniers animés
RSS feed of this listing Tutoriaux PS2
Les derniers liens