Search This Blog

14/06/2011

RewriteMap

L'uso di RewriteMap è solitamente ignoto (almeno per me) e la documentazione non aiuta molto a riguardo :(

RewriteMap permette di semplificare alcune righe di rewrite particolarmente ripetitive:
del tipo 

RewriteRule ^sg/$ data.php?id=sg RewriteRule ^az/$ data.php?id=az RewriteRule ^ir/$ data.php?id=ir RewriteRule ^hk/$ data.php?id=hk RewriteRule ^cn/$ data.php?id=cn RewriteRule ^bd/$ data.php?id=bd

in qqcosa del tipo:
RewriteRule ^(..) ${countries:$1}

In particolare (Liberamente preso e tradotto da http://onlamp.com/pub/a/apache/2005/04/28/apacheckbk.html)

Se volessimo creare le seguenti ridirezzioni

Potremmo scrivere 3 righe di rewrite e aggiungerne una nuova per ogni nuovo pesce in arrivo. Funziona, ma oltre a non essere molto elegante è anche poco efficente.

Quindi l'alternativa è data dalla creazione di un file di testo (/usr/local/apache/conf/fish.map) contenente:

quindi il file va "dato in pasto" a rewrite con la riga
  RewriteMap fishmap txt:/usr/local/apache/conf/fish.map
e essere usato succesivamente con le due righe

RewriteEngine On
RewriteRule ^/pesce/(.*) ${fishmap:$1} [R]

con queste righe una chiamata a 

No comments:

Post a Comment