Question

Nous avons un site Web créé par Django. Et il n'y a pas de problème lorsque l'accès URL suivante sur l'environnement de travail local:

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

" c% 23 " urlencode of "c #", qui fonctionne bien localement. Mais après le déploiement sur le serveur d’hébergement Bluehost (apache + fastcgi), cette URL a été résolue en une nouvelle adresse comme celle-ci:

http://site/t/tags/c/ 

C'est trop bizarre. Ce n'est probablement pas un problème de Django, mais cela a quelque chose à voir avec La réécriture de l'URL Apache. Si vous avez une idée ou une suggestion sur la façon de résoudre ce problème, veuillez me le faire savoir Merci d'avance.

Voici le fichier .htaccess qui 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 dû aux paramètres de httpd.conf, comment puis-je remplacer le fichier .htaccess alors que je n'ai pas l'autorisation?

Était-ce utile?

La solution

Quelques conseils avant d'aller plus loin:

Avez-vous essayé d'utiliser d'autres caractères tels qu'un espace (% 20) ou un caractère ASCII accentué? De plus, avez-vous essayé de mettre d'autres caractères après le% 23 (autre que la barre oblique) pour voir s'ils sont également supprimés?

Une hypothèse pourrait être que, comme # est considéré comme une ancre sur la page en cours, le # et les éléments suivants seront supprimés lors de la réécriture.

Autres conseils

Je suis d’accord avec la première réponse - et sans accès à la configuration d’Apache, vous n’êtes peut-être pas chanceux. Utiliser 'CSharp' ou quelque chose de ce genre pourrait être la solution.

# a une signification spéciale dans l'URI, identique à / ou? Est-ce que. Avez-vous ce problème avec d'autres symboles? En fin de compte, vous ne devriez de toute façon pas utiliser le signe # dans un URI, sauf si vous faites référence à une ancre sur la page.

http://httpd.apache.org/docs/2.2/rewrite /rewrite_guide.html

Lisez la section de réécriture d'ancre.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top