2010-09-17 8 views

Antwort

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

Ich würde '/ data' in'/\ bdata' ändern ('\ b' ist eine Wortgrenze), um die Übereinstimmung von Variablen wie' iamnotdata' zu vermeiden. – Blazemonger

+0

'/ \\ bdata' arbeitete für mich – alekstrust

0

alte Frage Ich weiß, aber ich bin gerade dabei, während ich etwas SSI-Zeug selbst gemacht habe. Ich bin mir sicher, dass du dein Problem inzwischen behoben hast, aber wenn dir das nicht weiterhilft, wird es vielleicht jemand anderes tun. Ich nehme an, der Server ist Apache. (Wenn nicht, dann schätze ich, dass das nicht funktioniert!)

Zuerst der Disclaimer! Ich bin auf keinen Fall ein Apache, Séd oder Regex Master, also bin ich sicher, dass das Folgende verbessert werden kann, aber es könnte ein Anfang sein. Es druckt nur die Seite relativ zur Basis der Site und den Parameter der Datenabfrage.

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

fand ich eine Liste der Apache-Umgebungsvariablen here: http://www.zytrax.com/tech/web/env_var.htm, und was Sie, um herauszufinden, mit diesem Zeug tun können, wenn Sie eslook here: http://httpd.apache.org/docs/2.0/howto/ssi.html abgerufen haben.

Bearbeitet, damit es nichts als die gesamte Zeichenfolge druckt, wenn kein Datenattribut gefunden wird.