Nginx删除基本的url

我试图通过使用Nginx的UWSGI设置Django。

我得到了UWSGI通行证使用这个function

location / { include uwsgi_params; uwsgi_pass 127.0.0.1:9001; } 

不幸的是,当我访问/ django /pipe理员。 我得到一个错误

找不到页面(404)请求方法:GET请求URL: http ://69.xxx/django/admin使用Django.urls中定义的URLconf,Django按以下顺序尝试这些URL模式:^ admin /

我怎么能让nginx重写url不通过/ django部分?

uwsgi_params文件中必须有以下内容:

 uwsgi_param QUERY_STRING $query_string; uwsgi_param REQUEST_METHOD $request_method; uwsgi_param CONTENT_TYPE $content_type; uwsgi_param CONTENT_LENGTH $content_length; uwsgi_param REQUEST_URI $request_uri; uwsgi_param PATH_INFO $document_uri; uwsgi_param DOCUMENT_ROOT $document_root; uwsgi_param SERVER_PROTOCOL $server_protocol; uwsgi_param REMOTE_ADDR $remote_addr; uwsgi_param REMOTE_PORT $remote_port; uwsgi_param SERVER_PORT $server_port; uwsgi_param SERVER_NAME $server_name; 

这些是传递给你的应用程序的参数。 我想你需要将request_uri更改为$ host,以便删除主机名后面的所有内容。

你也可以在虚拟服务器configuration中设置这个variables,它应该在本地覆盖它。 在uwsgi_pass 127.0.0.1:9001;之前执行此操作uwsgi_pass 127.0.0.1:9001;

另外,还可以创build一个重写规则,如下所示:

 rewrite ^(.*)/(.*)$ $1 last; 

并将其添加到location /部分,但我不确定这会按预期工作。