Nous avons un site web fait par Django. Et il n'y a pas de problème lorsque l'accès suivant sur l'environnement url de travail local:Problème Django de résolution des caractères spéciaux dans l'URL
http://site/tags/c%23/
"c% 23" est urlencode de "C#", qui fonctionne très bien au niveau local. Mais après que nous déployons sur Bluehost serveur d'hébergement (apache + FastCGI), cette URL a été résolu à une nouvelle adresse comme celui-ci:
http://site/t/tags/c/
C'est trop bizarre. Probablement ce n'est pas un problème de Django, mais quelque chose à voir avec Réécriture d'Apache url. Si vous avez une idée ou une suggestion pour résoudre ce problème, faites-le moi savoir. Merci d'avance.
Voici le fichier .htaccess peut être considéré:
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]
et le fichier 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: Si cela est causé par des paramètres httpd.conf, comment puis-je remplacer dans le fichier .htaccess alors que je n'ai pas la permission?
Aucun problème trouvé jusqu'à présent pour les autres symboles # est utile parfois dans un contexte comme sur stackoverflow, nous utilisons cette URL pour exprimer la balise "C#": http: //stackoverflow.com/questions/tagged/c%23 – chagel