Question about variables

mike mike503 at gmail.com
Thu Dec 4 01:46:50 MSK 2008


I think I answered my own question :)

rewrite ^/(en-us|zh-cn|ru-ru)/(.*) /$2 last;

Seemed to fix it. I can use
if (!-e $request_filename) {}
properly now.

Now hopefully my expires location block and such does not interfere :)

On Wed, Dec 3, 2008 at 2:33 PM, mike <mike503 at gmail.com> wrote:
> I'm going to try this myself - but I'm not sure it can be done.
>
> Our website is structured as
>
> /en-us/stuff
> /ru-ru/stuff
>
> etc.
>
> However, the underlying filesystem does not have these virtual locale
> paths. It basically is "/stuff"
>
> I want to be able to use
>
> if (!-e $request_filename) {
>    rewrite ^/(.*) /foo.php?q=$request_uri last;
> }
>
> or
>
> error_page 404 = /foo.php?q=$request_uri;
>
> However, it is trying to use /en-us/stuff for the request filename
> instead of just /stuff - is there some way I can set a variable and
> remove a portion of the URI, so it is something like
>
> set $customvar someregexhere;
> if(!-e $customvar) {
>   rewrite ^/(.*) /foo.php?q=$request_uri last;
> }
>
> I tried doing a rewrite to remove the /en-us/ etc... but that does not
> appear to change the $request_filename (from what I can tell, I am
> still trying to mess with it some more) - I still need the original
> URI or some way to grab the locale code inside of PHP, so I can't
> strip that off and forget about it completely.
>
> Anyone have any ideas?
>





More information about the nginx mailing list