- rétablir deux répertoires de templates différents: celui pour debian wheezy- est distinct de celui pour jessie+ - support d'une configuration complète ou partielle - support de la mise à jour de la configuration réseau: configuration complète (interfaces standards et bridge) ou partielle (ajout d'adresse ip) - support de templates pour la création de nouveaux site - améliorer le support des certificats: utiliser ceux qui sont déjà installés le cas échéant. - support de fichiers *rewrite*.rules directement dans le répertoire principal. Les fichiers de RewriteRules/ sont obsolètes. - quickstart pour apacheconfig, afin de simplifier son utilisation dans des scripts - fonction legacy_mkRewriteRules() pour pouvoir traiter les fichiers *rewrite*.rules dans des scripts.
		
			
				
	
	
		
			115 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			115 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/bash
 | |
| # -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
 | |
| source "$(dirname "$0")/lib/ulib/ulib" || exit 1
 | |
| urequire DEFAULTS apache.tools
 | |
| 
 | |
| function display_help() {
 | |
|     uecho "$scriptname: Créer un fichier de redirections pour Apache à partir d'un certain
 | |
| nombre de règles
 | |
| 
 | |
| USAGE
 | |
|     $scriptname -f rewrite.rules [-o RewriteRules.conf] [-w RewriteRules.html] host
 | |
| 
 | |
| OPTIONS
 | |
|     -p  Générer les directives <Proxy...> 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 <Proxy> n'\''est générée
 | |
| * Si aucune valeur n'\''est spécifiée, la directive suivante est générée:
 | |
|   <Proxy $URL>
 | |
|     AddDefaultCharset off
 | |
|     Order Deny,Allow
 | |
|     Allow from all
 | |
|   </Proxy>
 | |
| * Si une valeur est spécifiée, la directive suivante est générée:
 | |
|   <Proxy $URL>
 | |
|     AddDefaultCharset off
 | |
|     Order Allow,Deny
 | |
|     Allow from $proxy_acls
 | |
|   </Proxy>
 | |
| 
 | |
| 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.'
 | |
| }
 | |
| 
 | |
| proxy_enabled=
 | |
| infile=
 | |
| outfile=
 | |
| htmlfile=
 | |
| host=
 | |
| parse_opts "${PRETTYOPTS[@]}" \
 | |
|     --help '$exit_with display_help' \
 | |
|     -p proxy_enabled \
 | |
|     -f: infile= \
 | |
|     -o: outfile= \
 | |
|     -w: htmlfile= \
 | |
|     @ args -- "$@" && set -- "${args[@]}" || die "$args"
 | |
| 
 | |
| thishost="$1"
 | |
| if [ -n "$infile" ]; then infiles=("$infile")
 | |
| else array_lsfiles infiles . "*rewrite*.rules"
 | |
| fi
 | |
| 
 | |
| [ ${#infiles[*]} -gt 0 ] || die "Il faut spécifier le fichier de règles avec -f"
 | |
| for infile in "${infiles[@]}"; do
 | |
|     if [ -f "$infile" ]; then
 | |
|         estep "$(ppath "$infile")"
 | |
|         legacy_mkRewriteRules "$infile" "$thishost" "$outfile" "$htmlfile" "$proxy_enabled"
 | |
|     else
 | |
|         eerror "$(ppath "$infile"): fichier introuvable"
 | |
|     fi
 | |
|     # réinitialiser pour ne pas écraser un fichier existant
 | |
|     outfile=
 | |
|     htmlfile=
 | |
| done
 |