我们有一个由 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"])
UPDAET:如果这是由 httpd.conf 中的设置引起的,我如何在没有权限的情况下覆盖 .htaccess 文件?