Domanda

sto usando uno script PHP che genera dinamicamente PNG trasparenti da utilizzare come sfondi CSS da una stringa di query che prende valori RGBA e HSLA. Lo script originale si trova qui , ho solo aggiunto il supporto HSLA.

A causa di fondo URL con PHP stringhe di query non sono molto carina, e perché sembra di rompere il IE 6 trasparente mod PNG, ho pensato di utilizzare mod_rewrite per consentire lo script per essere chiamato quando un .png con questa sintassi si chiama :

/assets/colors/h[0-360 value]_s[0-100 value]_l[0-100 value]_a[0-100 value].png

che verrebbe riscritto per:

/assets/colors.php?h=[0-360 value]&s=[0-100 value]&l=[0-100 value]&a=[0-100 value]

Ecco le questioni che sto incontrando:

  • Il passaggio di molteplici variabili con mod_rewrite
  • utilizzando una sottolineatura come delimitatore

So che questo potrebbe essere fatto facendo passare una sola variabile e poi esplodere nel script PHP, però preferirei che sia fatto da Apache.

Grazie in anticipo e se qualcuno vuole il mio HSLA ha permesso la versione dello script basta chiedere. In ogni caso vi consiglio di controllare sul sito web è di autore.

È stato utile?

Soluzione

mod_rewrite corrisponderà cose in parentesi (), e poi si può fare riferimento a questi da $ 1, $ 2, ecc nell'ordine in cui sono stati abbinati. Quindi è possibile utilizzare questo per estrarre più variabili, semplicemente inserendoli in parentesi graffe.

Quindi, qualcosa di simile a questo lavoro per voi,

RewriteRule ^assets/colors/h([0-9]{1,3})_s([0-9]{1,3})_l([0-9]{1,3})_a([0-9]{1,3}).png assets/colors.php?h=$1&s=$2&l=$3&a=$4 

([0-9]{1,3}) corrisponderà sia a 1, 2 o 3 dei numeri 0-9 in una riga. Quindi, "3", "10" e "100", ecc, ma sarebbe anche corrispondere "999", quindi è necessario assicurarsi che i controlli di file colors.php i valori sono entro i valori attesi, ecc.

Altri suggerimenti

Prova questo:

RewriteEngine on
RewriteRule /assets/colors/h([0-9]+)_s([0-9]+)_l([0-9]+)_a([0-9]+).png /assets/col.php?h=$1&s=$2&l=$3&a=$4 [QSA,L]

ho dovuto changeup il mio nome dello script per fare questo lavoro. Perché ho Options MultiViews, / Attività / colori / è sempre gestito da colors.php indipendentemente dalla configurazione mod_rewrite.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top