gpt4 book ai didi

URLS 中的 Django 双斜线问题(多个 Web 服务器、Apache 和 Nginx)

转载 作者:行者123 更新时间:2023-12-04 06:42:41 27 4
gpt4 key购买 nike

要查看示例:加载 example.com,单击链接到/test 的链接,而不是转到 http://example.com/test/,而是转到 http://www.example.net//测试/

或者,如果您登录,自动生成的 django 管理部分的登录表单将发布到//admin 而不是 admin。

似乎这是一个 django 问题,但我唯一改变的是 nginx。

一些附加说明(10 月 31 日添加):

  • 这个问题似乎与 https://serverfault.com/questions/134863/nginx-fastcgi-problems-with-django-double-slashes-in-url 非常相似但不同之处在于我在项目根目录“//admin/”与“admin//”之前添加了斜杠。那里的成功解决方案对我没有帮助。
  • 我正在使用 Django 的当前 SVN 版本。

  • 这是 nginx fastcgi_conf:
    #fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
    fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
    fastcgi_param QUERY_STRING $query_string;
    fastcgi_param REQUEST_METHOD $request_method;
    fastcgi_param CONTENT_TYPE $content_type;
    fastcgi_param CONTENT_LENGTH $content_length;

    fastcgi_param SCRIPT_NAME $fastcgi_script_name;
    fastcgi_param REQUEST_URI $request_uri;
    fastcgi_param DOCUMENT_URI $document_uri;
    fastcgi_param DOCUMENT_ROOT $document_root;
    fastcgi_param SERVER_PROTOCOL $server_protocol;

    fastcgi_param GATEWAY_INTERFACE CGI/1.1;
    fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;

    fastcgi_param REMOTE_ADDR $remote_addr;
    fastcgi_param REMOTE_PORT $remote_port;
    fastcgi_param SERVER_ADDR $server_addr;
    fastcgi_param SERVER_PORT $server_port;
    fastcgi_param SERVER_NAME $server_name;

    fastcgi_param PATH_INFO $fastcgi_script_name;

    # PHP only, required if PHP was built with --enable-force-cgi-redirect
    fastcgi_param REDIRECT_STATUS 200;

    Django项目配置
    server {
    listen 80;
    server_name www.site.net;

    location / {
    fastcgi_pass unix:/path/to/site/server.sock;
    include fastcgi.conf;
    access_log /var/log/nginx_django.log main;
    }

    location ^~ /admin/$ {
    fastcgi_pass unix:/path/to/site/server.sock;
    include fastcgi.conf;
    access_log /var/log/nginx_django.log main;
    }

    location ~* ^.+\.(mpg|avi|mp3|swf|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|txt|tar|mid|midi|wav|rtf|mpeg))
    $ {
    root /path/to/site/media;
    limit_rate 2000K;
    access_log /var/log/nginx_django_media.log download;
    access_log off;
    }

    location ^~ /static/ {
    root /path/to/site;
    access_log /var/log/nginx_django_static.log download;
    expires 30d;
    }

    location /403.html {
    root /opt/nginx;
    access_log off;
    }

    location /401.html {
    root /opt/nginx;
    access_log off;
    }

    location /404.html {
    root /opt/nginx;
    access_log off;
    }

    location = /_.gif {
    empty_gif;
    access_log off;
    }

    }

    最佳答案

    fastcgi_param  SCRIPT_NAME        '';

    这解决了 //我的问题。

    关于URLS 中的 Django 双斜线问题(多个 Web 服务器、Apache 和 Nginx),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4056967/

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