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

2024-02-11

要查看示例:加载 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 https://serverfault.com/questions/134863/nginx-fastcgi-problems-with-django-double-slashes-in-url但不同之处在于,我在项目根目录“//admin/”与“admin//”之前添加了斜杠。那里的成功解决方案对我没有帮助。
  • 我正在使用 Django 的当前 SVN 版本。

这是 nginx fastcgi 配置:

#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        '';

这解决了//对我来说有问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

URLS 问题中的 Django 双斜杠(多个 Web 服务器、Apache 和 Nginx) 的相关文章

随机推荐

  • 通过VBA插入Excel公式

    作为另一个问题的延续 我试图解决通过 VBA 在宏上插入公式的问题 这是我的代码 Range F1 Select ActiveCell Formula IF C1 LPPD MIPRU IF C1 LPGR DCT IF OR C1 LPF
  • Grails 中具有一个域类的依赖下拉菜单

    因此 我有一个域类 它有很多字段 我在 GSP 中准备了五个下拉菜单 并且数据在任何下拉菜单的 onChange 上正确过滤 但存在问题 对于在下拉列表中选择的几组组合 我们在数据库中没有数据 并且这些组合不是固定的 所以 我在想是否有可能
  • 如何将 asp:SiteMapPath 的输出转换为列表?

    我对 NET 和 VB NET 都非常不熟悉 不太清楚如何做到这一点 假设我有这样的代码 div class breadcrumb div
  • WPF 在 InitializeComponent 期间获取 Control null 引用

    So my InitializeComponentWindow 构造函数中的方法调用通过 XML 运行并添加控件并将它们插入到事件中 因此 当其中一个控件的属性发生更改时 它会调用订阅该事件的方法 该方法引用尚未构建的控件 为什么这里会按这
  • 如何在c中绘制直方图

    如何在 c 中从 2 个数组绘制直方图 您可以用这个字符 来表示图表中的计数 这是一个可以打印的字符 printf c char 254u 考虑一些随机的float arr and hist保存计数的数组 Code Function gen
  • 越野车弹跳球

    我在处理中制作碰撞球草图时 遇到了一个奇怪的错误 尽管有从墙上弹起的条件 有些球粘在上面 我在这里找不到错误的根源 有人可以帮忙吗 我还意识到可能很少 很多 糟糕的编码实践 但我事先道歉 我在下面发布代码 1 主要 https pasteb
  • Webpack / ES6:如何导入样式表

    我看到像 bootstrap 这样的存储库开始在它们的中包含额外的标签package json 文件 例如 style 和 less https github com twbs bootstrap blob v4 0 0 alpha 2 p
  • 在文本区域“内部”加粗文本

    我有一个文本区域 myarea我正在其中输入文本 我已经输入了这段文字 这是一个句子 只有这个词 最终会被加粗 现在我的侧面有一个按钮 就像一个粗体按钮 我想选择想要加粗的字母 单击按钮 然后看到这些字母在文本区域内变成粗体 它与许多编辑器
  • UITableViewCell - 如何在重用之前重置内容

    有一个烦人的错误我无法修复 我有一个CustomCell 其中我有一个子视图 可以根据对象的值更改其颜色 UITableViewCell tableView UITableView tableView cellForRowAtIndexPa
  • 如何使用 jQuery 选择的插件重置表单?

    我有一堆select元素的形式为我正在使用 Jquery Chosen 插件 https github com harvesthq chosen 如何重置表格 以下不起作用
  • Three.js 图块具有使用平面几何的多个纹理

    所以我正在尝试构建一个由图块组成的基于 3D 的世界 我已经成功地使用平面几何和高度值等做到了这一点 但现在我已经到了我可能必须改变一切的地步 问题是我希望一个图块具有多个纹理 使用着色器 因为我想混合它们 我能够在全球范围内执行此操作 因
  • 获取任意变换的 MatrixTransform

    我在 WPF 堆栈中工作 我希望能够为任何 Transform 获取 MatrixTransform 根据链接here http msdn microsoft com en us library system windows media t
  • Swing 数据绑定框架

    几乎同样的问题被问过year ago https stackoverflow com questions 510655 jgoodies binding vs jsr 295 但是这方面已经有了一些新的发展 为 Swing 应用程序选择一个
  • 尝试获取 PDO 中非对象的属性

    首先 我知道这可能是一个重复的问题 但我做了一些搜索 例如这个问题 https stackoverflow com questions 5891911 trying to get property of non object in但我不明白
  • 将 xml 转换为 json 以将文件处理为 Bigquery

    我想将 stackexchange 原始数据处理到 BigQuery 中 但首先数据使用 7z 压缩格式 因此我解压缩数据以将其移植为 gz 格式 但内部文件是 xml 所以我需要将文件从 xml 转换为 json 有任何想法吗 我使用 p
  • 我如何使用 Objective C 中的照片框架从图库访问照片

    我是照片框架的新手 我不知道如何使用它 我使用了很多链接 但我很困惑如何在 imageview 中显示图像 我想使用我正在尝试的照片框架从图库中获取所有照片 NSMutableOrderedSet recentsDataSource PHF
  • 仅使用 hashKey 查询 dynamoDB

    我想仅使用 Hashkey 查询我的 dynamoDB 我的表 名称 testTable 架构如下 字符串自动ID HashKey 字符串 AlexandriaID RangeKey 字符串文档类型 我的 dynamoDBQueryExpr
  • 为什么 bytes.fromhex() 会奇怪地处理某些十六进制值?

    我正在尝试使用Python中的套接字库将两个十六进制数字的字节发送到一个编程为接受它们的硬件 要从用户输入的十六进制数字字符串创建字节 我尝试使用bytes fromhex 描述的方法here https docs python org d
  • 错误:请求“this”中的成员“..”,该成员属于非类类型“--* const”

    我的第一个问题在这里 请原谅 我刚刚进入C 并开始使用DS 堆 我的代码 我认为 using namespace std typedef char stackElement class Stack public stackElement c
  • URLS 问题中的 Django 双斜杠(多个 Web 服务器、Apache 和 Nginx)

    要查看示例 加载 example com 单击链接到 test 的链接 而不是访问 http example com test 而是访问 http www example net 测试 或者 如果您登录 自动生成的 django 管理部分的