【发布时间】:2011-04-13 13:56:18
【问题描述】:
我必须使用 SSI 获取 URL 和参数(仅使用 SSI),但我找不到任何解决方案。
例如:http://www.test.com/abc.html?data=something
我必须得到参数“数据”的值。
【问题讨论】:
标签: url parameters get ssi
我必须使用 SSI 获取 URL 和参数(仅使用 SSI),但我找不到任何解决方案。
例如:http://www.test.com/abc.html?data=something
我必须得到参数“数据”的值。
【问题讨论】:
标签: url parameters get ssi
<!-- 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" -->
【讨论】:
/data 更改为/\bdata(\b 是单词边界)以避免匹配iamnotdata 等变量。
我知道的老问题,但我只是在自己做一些 SSI 工作时遇到了这个问题。我相信你现在已经解决了你的问题,但如果这对你没有帮助,也许它会帮助其他人。我假设服务器是 Apache。 (如果没有,那我想这行不通!)
首先是免责声明!我绝不是 apache、sed 或 regex 大师,所以我确信接下来的内容可以改进,但这可能是一个开始。它只是打印相对于站点基础的页面和数据查询的参数。
<!--#echo var="DOCUMENT_URI" -->
<!--#exec cmd="echo '$QUERY_STRING' | sed -n 's/\([^&]*&\)*data=\([^&]*\).*/\2/p'" -->
我找到了一个 apache 环境变量列表here: http://www.zytrax.com/tech/web/env_var.htm,并找出在检索到这些东西后可以做什么look here: http://httpd.apache.org/docs/2.0/howto/ssi.html。
已编辑,以便在未找到数据属性时打印任何内容而不是整个字符串。
【讨论】: