Получить URL и параметры с помощью SSI - PullRequest
8 голосов
/ 17 сентября 2010

Мне нужно получить URL и параметры с помощью SSI (только с SSI), но я не могу найти никакого решения.

Например: http://www.test.com/abc.html?data=something

И я должен получитьзначение параметра «данные».

Ответы [ 2 ]

23 голосов
/ 05 марта 2011
<!-- 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" -->
0 голосов
/ 17 декабря 2010

старый вопрос, который я знаю, но я только что натолкнулся на него, когда делал кое-что из SSI самостоятельно.Я уверен, что вы уже исправили свою проблему, но если это вам не поможет, возможно, это поможет кто-то другой.Я предполагаю, что сервер Apache.(Если нет, то я думаю, что это не сработает!)

Сначала отказ от ответственности!Я ни в коем случае не мастер Apache, Sed или Regex, так что я уверен, что дальнейшее может быть улучшено, но это может быть началом.Он просто печатает страницу относительно базы сайта и параметра запроса данных.

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

Я нашел список переменных окружения apache здесь: http://www.zytrax.com/tech/web/env_var.htm, иузнайте, что вы можете сделать с этим материалом после того, как вы его получите посмотрите здесь: http://httpd.apache.org/docs/2.0/howto/ssi.html.

Отредактировано , чтобы заставить его печатать ничего, а не всю строку, когда нет данныхатрибут найден.

...