2010-09-17 23 views

risposta

22
<!-- set default value for SSI variable "data" -->  
<!--#set var="data" value="" --> 

<!-- get "data" value from URL --> 
<!--#if expr="$QUERY_STRING = /data=([a-zA-Z0-9]+)/" --> 
<!--#set var="data" value="$1" --> 
<!--#endif --> 

<!-- print the "data" value -->  
<!--#echo var="data" --> 
+1

Vorrei cambiare '/ data' in'/\ bdata' ('\ b' è un limite di parole) per evitare la corrispondenza di variabili come' iamnotdata'. – Blazemonger

+0

'/ \\ bdata' ha funzionato per me – alekstrust

0

vecchia domanda Lo so, ma l'ho incontrato mentre facevo alcune cose SSI io stesso. Sono sicuro che hai risolto il tuo problema ormai, ma se questo non ti aiuta, forse sarà qualcun altro. Suppongo che il server sia Apache. (In caso contrario, suppongo che non funzionerà!)

Prima la dichiarazione di non responsabilità! Non sono affatto un apache, sed, o regex master, quindi sono sicuro che quanto segue può essere migliorato, ma potrebbe essere un inizio. Stampa solo la pagina relativa alla base del sito e il parametro della query di dati.

<!--#echo var="DOCUMENT_URI" --> 
<!--#exec cmd="echo '$QUERY_STRING' | sed -n 's/\([^&]*&\)*data=\([^&]*\).*/\2/p'" --> 

ho trovato un elenco di variabili di ambiente apache here: http://www.zytrax.com/tech/web/env_var.htm, e per scoprire cosa si può fare con questa roba una volta che hai recuperato è look here: http://httpd.apache.org/docs/2.0/howto/ssi.html.

Modificato in modo che non stampi nulla anziché l'intera stringa quando non viene trovato alcun attributo di dati.