相关疑难解决方法(0)

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

我们有一个由Django制作的网站.在本地工作环境中访问以下URL时没有问题:

http://site/tags/c%23/
Run Code Online (Sandbox Code Playgroud)

"c%23"是"c#"的urlencode,在本地工作正常.但是在我们将它部署到Bluehost托管服务器(apache + fastcgi)之后,此URL已经解析为一个新的地址,如下所示:

http://site/t/tags/c/ 
Run Code Online (Sandbox Code Playgroud)

这太奇怪了.可能这不是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] 
Run Code Online (Sandbox Code Playgroud)

和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"]) 
Run Code Online (Sandbox Code Playgroud)

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

django django-urls

7
推荐指数
1
解决办法
2887
查看次数

标签 统计

django ×1

django-urls ×1