gpt4 book ai didi

django - Microsoft Azure 将额外的查询字符串附加到带有查询字符串的 URL

转载 作者:行者123 更新时间:2023-12-02 02:11:17 25 4
gpt4 key购买 nike

在将我正在开发的 Django 网站版本部署到 Microsoft 的 Azure 服务时,我添加了一个页面,该页面采用像

这样的查询字符串
http://<my_site_name>.azurewebsites.net/security/user/?username=<some_username>&password=<some_password>

但是,我收到了对此 URL 的 404 响应。所以我打开了 Django 的调试标志,返回的页面显示:

Page not found (404)
Request Method: GET
Request URL: http://<my_site_name>.azurewebsites.net/security/user/?username=<some_username>&password=<some_password>?username=<some_username>&password=<some_password>


Using the `URLconf` defined in `<my_project_name>.urls`, Django tried these URL patterns, in this order:

^$
^security/ ^user/$
^account/
^admin/
^api/

The current URL, `security/user/?username=<some_username>&password=<some_password>`, didn't match any of these.

所以它似乎将查询字符串附加到已经具有相同查询字符串的 url 末尾。我的网站在我的本地计算机和内部网络上的 iis 服务器上运行,我在推送到 Azure 之前使用它进行暂存。这些站点部署都没有执行此操作,因此这似乎是 Azure 特有的。

我是否需要在 Azure 网站管理界面中设置某些内容以防止它使用查询字符串修改 URL?在 Azure 中使用查询字符串时我是否做错了什么?

最佳答案

在与 wfastcgi.py 的提供商交谈时,他们告诉我可能是 wfastcgi.py 的问题导致了这个问题。当他们调查这个问题时,他们给了我一个解决问题的方法。

http://pytools.codeplex.com/releases 下载 wfastcgi.py 的最新副本

在该文件中找到这部分代码:

if 'HTTP_X_ORIGINAL_URL' in record.params:
# We've been re-written for shared FastCGI hosting, send the original URL as the PATH_INFO.
record.params['PATH_INFO'] = record.params['HTTP_X_ORIGINAL_URL']

并在其正下方添加(仍然是 if block 的一部分):

# PATH_INFO is not supposed to include the query parameters, so remove them
record.params['PATH_INFO'] = record.params['PATH_INFO'].split('?')[0]

然后,将此修改后的文件上传/部署到 Azure 站点(使用 ftp 将其放在某处或将其添加到您的站点部署中。我正在部署它,以便如果我需要进一步修改它的版本和支持向上。

在站点的 Azure 管理页面中,转到站点的配置页面并更改处理程序映射以指向修改后的 wfastcgi.py 文件并保存配置。

即我的处理程序曾经是默认的 D:\python27\scripts\wfastcgi.py。由于我部署了修改后的文件,处理程序路径现在为:D:\home\site\wwwroot\wfastcgi.py

我还重新启动了该网站,但您可能不必这样做。

这个修改后的脚本现在应该从 PATH_INFO 中删除查询字符串,并且带有查询字符串的 URL 应该可以工作。我将一直使用它,直到我从 wfastcgi.py 开发人员那里得知 Python27 安装中的默认 wfastcgi.py 文件已被修复/替换。

关于django - Microsoft Azure 将额外的查询字符串附加到带有查询字符串的 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15299717/

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