trying to get alias and seo urls working with uwsgi but no luck
Igor Sysoev
igor at sysoev.ru
Fri Feb 11 13:15:35 MSK 2011
On Fri, Feb 11, 2011 at 04:54:18AM -0500, chenxee wrote:
> hi there,
>
> I'm new to nginx and trying to configure nginx and uwsgi to get
> alias+seo url working, something like this:
>
> http://domain.com/shop/product/123 - /shop is an alias and shop dir
> doesnt exist in filesystem under doc root, and this url trying to pass
> query string as ?product=123
>
> to get alias working, my config:
>
> [code]
> location /shop {
> alias /public/webshop;
> index main.py;
> }
>
> location ~ ^/shop.+\.py$ {
> root /public/webshop;
> rewrite /shop/(.*\.py?)$ /$1 break;
> include uwsgi_params;
> uwsgi_pass unix:$uwsgi_socket;
> }
> [/code]
>
> It's working fine, as http://domain.com/shop/ finds
> "/public/webshop/main.py" and pass to uwsgi socket. However
> http://domain.com/shop/product/123 always report 404 not found - nginx
> tries to locate "/public/webshop/product/123" and ofc it's not there..
> whereas http://homer.unisport.dk/shop/?product=123 works fine as usual.
>
> What I'm trying is to forward all request starting with /shop to
> /public/webshop/main.py and let python script parses url. I have tried
> googled a lot nginx rewrite rules, e.g. [code]
> rewrite ^/shop/(.*)$ /$1 permanent;
> [/code]
> but with no luck. Maybe I'm so bad at understand nginx rewrite,
> therefore looking for any advice here.
>
> Any thoughts would be appreciated.
You need to make copy of uwsgi_params, say, uwsgi.conf,
Then remove this line from the new file:
uwsgi_param PATH_INFO $document_uri;
and use this configuraiton:
location /shop {
uwsgi_pass unix:/path/to/uwsgi/socket;
include uwsgi.conf;
uwsgi_param PATH_INFO /public/webshop/main.py;
}
Alos, you should not
set $uwsgi_socket /path/to/uwsgi/socket;
--
Igor Sysoev
http://sysoev.ru/en/
More information about the nginx
mailing list