gpt4 book ai didi

解析url中特殊字符的Django问题

转载 作者:行者123 更新时间:2023-12-04 12:02:16 24 4
gpt4 key购买 nike

我们有一个由 Django 制作的网站。而且访问时没有问题
以下是本地工作环境的网址:

http://site/tags/c%23/

“c%23”是“c#”的urlencode,在本地工作正常。
但是在我们将它部署到 Bluehost 托管服务器(apache+fastcgi)上之后,这个 URL 已经被解析为一个新地址,如下所示:
http://site/t/tags/c/ 

那太奇怪了。可能不是Django的问题,而是有关系
Apache url 的重写。如果您有任何想法或建议如何解决此问题,请告诉我。
提前致谢。

下面是 .htaccess 文件可以考虑:
AddHandler fcgid-script .fcgi 
#AddHandler fastcgi-script .fcgi
#AddHandler application/cgi .fcgi
#AddHandler cgi-script .fcgi
RewriteEngine On
RewriteBase /
#static file setting
RewriteRule ^(media/.*)$ - [L]
RewriteRule ^(static/.*)$ - [L]
RewriteCond %{REQUEST_URI} !(dispatch.fcgi)
RewriteRule ^(.*)$ dispatch.fcgi/$1 [L]

和 dispatch.fcgi 文件:
#!/home/***/python/bin/python 
import sys, os
# Add a custom Python path.
sys.path.insert(0, "/home/***/python")
sys.path.insert(0, "/home/***/working/Django-1.0")
os.chdir("/home/***/working/Django-1.0/project")
os.environ['DJANGO_SETTINGS_MODULE'] = "project.settings"
from django.core.servers.fastcgi import runfastcgi
runfastcgi(["method=threaded", "daemonize=false"])

更新:如果这是由 httpd.conf 中的设置引起的,我如何在没有权限的情况下覆盖 .htaccess 文件?

最佳答案

在继续之前,请提供一些提示:

您是否尝试过使用其他字符,例如空格 (%20) 或带重音的 ASCII 字符?另外,您是否尝试在 %23 之后放置其他字符(斜杠除外)以查看它们是否也被剥离?

一种猜测可能是,由于 # 被视为当前页面上的 anchor ,因此 # 以及后面的任何内容都将在重写中被删除。

关于解析url中特殊字符的Django问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/410993/

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