cha*_*gel 7 django django-urls
我们有一个由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文件?
进一步说明之前的一些提示:
您是否尝试过其他字符,例如空格(%20)或带重音的ASCII字符?另外,您是否尝试过将其他字符放在%23之后(斜杠除外)以查看它们是否也被剥离了?
一种猜测可能是因为#被认为是当前页面上的锚点,所以#和后面的内容将被重写中删除.
| 归档时间: |
|
| 查看次数: |
2887 次 |
| 最近记录: |