Question about variables


#1

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?


#2

I think I answered my own question :slight_smile:

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 :slight_smile: