从Django重定向

时间:2017-04-26 00:03:27

标签: django nginx

我将我网站根目录下的所有文件重定向到英文子目录

url(r'^(?P<zero>([a-z-]*)).(htm|php|html)$', redirect, {'to': '/en/{0}.html', 'permanent': True}),

我想要排除特定页面。如果我使用apache,我可以轻松地使用别名或mod重写,然后才能访问Django应用程序。但是我使用Nginx并且重定向获取进程而不管别名。我上面可以使用一条规则,因此我的root上的特定页面不会被重定向吗?

以下是我使用regx的配置示例,也尝试了上面提到的一个(位置^〜/ file.html {)

 listen 8007;
    server_name  devel.somedomain.com;
    access_log  /var/log/nginx/somedomain-dev.log;
    error_log /var/log/nginx/error.log;
    real_ip_header X-Forwarded-For;
    set_real_ip_from 0.0.0.0/0;
    #real_ip_recursive on;

    location ~ /help.cgi$  {

        proxy_pass http://localhost:8006;
    }

    location ^~* /file\.html$ {
        alias /home/admin/somedomain/file.html;
    }
    location / {
       proxy_pass http://127.0.0.1:8006;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

1 个答案:

答案 0 :(得分:0)

在nginx中更容易。

location ^~ /file_name {
     alias /path/to/file_name;
}

将其放在proxy_pass

之前