2010-09-17 22 views

Respuesta

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

Cambiaría '/ data' por'/\ bdata' ('\ b' es un límite de palabras) para evitar que coincidan variables como' iamnotdata'. – Blazemonger

+0

'/ \\ bdata' funcionó para mí – alekstrust

0

pregunta anterior Lo sé, pero acabo de encontrarlo mientras hago algunas cosas de SSI. Estoy seguro de que ya corrigió su problema, pero si esto no lo ayuda, tal vez lo haga alguien más. Supongo que el servidor es Apache. (¡Si no, entonces supongo que esto no va a funcionar!)

¡Primero la exención de responsabilidad! De ninguna manera soy un maestro de apache, sed o regex, por lo que estoy seguro de que lo que sigue se puede mejorar, pero puede ser un comienzo. Simplemente imprime la página relativa a la base del sitio y el parámetro de la consulta de datos.

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

He encontrado una lista de variables de entorno de Apache here: http://www.zytrax.com/tech/web/env_var.htm, y para averiguar lo que puede hacer con este material una vez que se ha recuperado es look here: http://httpd.apache.org/docs/2.0/howto/ssi.html.

Editado para que imprima nada en lugar de toda la cadena cuando no se encuentra ningún atributo de datos.

Cuestiones relacionadas