gpt4 book ai didi

站点根页面的 Django 和 Nginx try_files 403

转载 作者:行者123 更新时间:2023-12-05 01:48:58 25 4
gpt4 key购买 nike

我为域使用这样的 Nginx 配置:

server_name_in_redirect off; 
listen 80;
server_name ~^(www\.)?(.+)$;
root /var/www/$2/htdocs;

location / {
try_files $uri $uri/ $uri/index.htm @django;
index index.html index.htm;
}

location @django {
fastcgi_pass 127.0.0.1:8801;
fastcgi_param PATH_INFO $fastcgi_script_name;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param SERVER_NAME $server_name;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_pass_header Authorization;
fastcgi_intercept_errors off;
fastcgi_param REMOTE_ADDR $remote_addr;
}

Django URL 配置:

urlpatterns = patterns('',   
url(r'^$', home, name='home'),
url(r'index.htm', home, name='home'),
url(r'^(?P<name>.*).htm$', plain_page, name="plain_page"),
}

所有 url 都像 http://domain.com/somepage.htm效果很好,除了http://domain.com/它总是显示 Nginx 的 403。

如果您将静态 index.htm 文件添加到站点根目录 - 它会因为 try_files 指令而打开

如果你没有static index.htm,但是调用http://domain.com/index.htm页面由 django 打开

如果你没有静态 index.htm 并打开 http://domain.com/你没有页面,但通过想法应该查看 index.htm 并将其作为 try_files 链中的最后一个传递给 django。

如何制作http://domain.com/在这种情况下工作(应该调用 django 的 index.htm)?

最佳答案

添加这个


位置 =/{
最后重写 ^(.*)$/index.htm;
}

root 行下面,在进一步处理之前重写 URI。

附言。自您提出要求以来,您可能已经在这一年中解决了这个问题,但这里是供其他人查看的。

关于站点根页面的 Django 和 Nginx try_files 403,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1376096/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com