# -*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8 ##@creator: jclain ##@created: 15/03/2012 22:19 ##@modifier: jclain ##@changecount: 1 ##@tags: ##@title: mkRewriteRules {{{ mkRewriteRules: Créer un fichier de redirections pour Apache à partir d'un certain nombre de règles USAGE mkRewriteRules -f rewrite.rules [-o RewriteRules.conf] [-w RewriteRules.html] host OPTIONS -p Générer les directives et tenir compte de proxy_acls Par défaut, le champ proxy_acls est ignoré FORMAT des règles de mapping ============================ Les commentaires commencent par le signe "#" Les règles sont de la forme: src:dest:host:suffix:OPTS:prot:proxy_acls ^prefix =literal prot vaut par défaut http. Il peut valoir aussi https Si dest ou suffix se terminent par $, on est en mode NO_SLASH En mode NO_SLASH, si src se termine par $, on est en mode NO_TRAIL * Si dest est de la forme Application.woa En mode NO_SLASH, on génère RewriteRule ^/src(.*) [prot://host]/cgi-bin/WebObjects/dest[/suffix]$1 [L,OPTS] En mode NO_SLASH+NO_TRAIL, on génère RewriteRule ^/src [prot://host]/cgi-bin/WebObjects/dest[/suffix] [L,OPTS] En mode normal, on génère RewriteRule ^/src$ /src/ RewriteRule ^/src/(.*) [prot://host]/cgi-bin/WebObjects/dest[/suffix]/$1 [L,OPTS] * Si dest n'est pas de la forme Application.woa En mode NO_SLASH, on génère RewriteRule ^/src(.*) [prot://host]/dest[/suffix]$1 [L,OPTS] En mode NO_SLASH+NO_TRAIL, on génère RewriteRule ^/src [prot://host]/dest[/suffix] [L,OPTS] En mode normal, on génère RewriteRule ^/src$ /src/ RewriteRule ^/src/(.*) /dest[/suffix]/$1 [L,OPTS] Si une règle est précédée d'une ou plusieurs lignes de la forme "^prefix", ces lignes sont copiées avant chacune des commandes RewriteRule générées pour une règle. Ceci permet d'ajouter des conditions avec RewriteCond pour une règle. e.g. ^RewriteCond %{REMOTE_ADDR} 10\..* src:dest.woa qui génère: RewriteCond %{REMOTE_ADDR} 10\..* RewriteRule ^/src$ /src/ RewriteCond %{REMOTE_ADDR} 10\..* RewriteRule ^/src/(.*) /cgi-bin/WebObjects/dest.woa/$1 [L] Une ligne de la forme "=literal" est recopiée sans modifications (sans le "=") dans le fichier de sortie. proxy_acls est utilisé si l'option -p est spécifiée et OPTS contient P (comme proxy), ou si le mode de réécriture requière l'utilisation d'un proxy. * Avec la valeur "None", aucune directive n'est générée * Si aucune valeur n'est spécifiée, la directive suivante est générée: AddDefaultCharset off Order Deny,Allow Allow from all * Si une valeur est spécifiée, la directive suivante est générée: AddDefaultCharset off Order Allow,Deny Allow from $proxy_acls Dans les exemples donnés ci-dessus, $URL est l'url générée par la réécriture, et $proxy_acls la valeur du champ proxy_acls spécifiée ci-dessus. }}}