Emulate SSI 'exec cmd' with nginx
Maxim Dounin
mdounin at mdounin.ru
Tue Apr 23 14:23:14 UTC 2013
Hello!
On Mon, Apr 22, 2013 at 06:45:55PM -0400, lpr wrote:
> Dear all
>
> Trying to move my pages from Apache to nginx (1.2.1 on Debian stable with
> backports), I run into the problem of having used SSI's 'exec cmd' for more
> than a decade quite intensively.
>
> What is the best and easiest way to emulate 'exec cmd' with nginx?
>
> For example, in my footers I make use of dynamically change between ENglish
> and GErman with a shell script as easy as
>
> <!--# exec cmd="setlanguage.sh" -->
>
> with setlanguage.sh as
>
> echo "<a href=\"$(echo $REQUEST_URI | sed -e 's:/EN/:/GE/:')\">Deutsch</a>"
>
> When I try using <!--# include virtual="setlanguage.sh" -->, the script is
> executed. However, instead of just adding the link, nginx includes the
> German web-page fully.
>
> Is there an easy way to get the same functionality with nginx?
There is no "exec" SSI command support in nginx.
In this particular case I would recommend using if with regular
expression and echo commands instead. Something like this should
work:
<!--# if expr="$request_uri = /(?P<foo>.+)/EN/(?P<bar>.+)" -->
<a href="<!--# echo var="foo" -->/GE/<!--# echo var="bar" -->">Deutsch</a>
<!--# endif -->
(Untested.)
--
Maxim Dounin
http://nginx.org/en/donation.html
More information about the nginx
mailing list