Frage

Wir haben eine Webseite gemacht von Django. Und es ist kein Problem, wenn der Zugang folgende URL auf dem lokalen Arbeitsumgebung:

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

"c% 23" ist urlencode von "c #", die feinen lokal arbeitet. Aber nachdem wir es auf Bluehost Hosting-Server (Apache + FastCGI) bereitstellen, diese URL hat eine neue Adresse wie folgt gelöst:

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

Das ist zu komisch. Wahrscheinlich ist es kein Problem, die Django, aber etwas mit dem zu tun Apache URL Rewrite. Wenn Sie eine Idee oder einen Vorschlag haben, wie man dieses Problem beheben lassen Sie es mich wissen. Vielen Dank im Voraus.

Hier wird die .htaccess-Datei angesehen werden kann:

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] 

und die dispatch.fcgi-Datei:

#!/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: Wenn dies durch Einstellungen in httpd.conf verursacht wird, wie ich in .htaccess-Datei überschrieben werden kann, während ich die Erlaubnis nicht haben, um es

War es hilfreich?

Lösung

Nur ein paar Tipps, bevor sie weiter:

Haben Sie mit anderen Charakteren versuchen, wie ein Leerzeichen (% 20) oder ein akzentuierte ASCII-Zeichen? Außerdem haben Sie versucht, andere Zeichen setzen, nachdem das 23% (außer dem Schrägstrich), um zu sehen, ob sie auch ausgezogen sind?

Eine Vermutung könnte sein, dass, wie die # als Anker auf der aktuellen Seite betrachtet werden, die # und was auch immer, nachdem sie in der Rewrite abgestreift werden wird.

Andere Tipps

ich müsste mit der ersten Antwort zustimmen - und ohne Zugriff auf die Apache-Konfiguration, können Sie kein Glück. ‚CSharp‘ oder etwas in dieser Art verwenden, kann der Weg zu gehen.

# hat eine besondere Bedeutung in URI, gleich wie / oder? der Fall ist. mit anderen Symbolen Haben Sie dieses Problem haben? Letztendlich sollten Sie kein # -Zeichen in einer URI verwenden sowieso, es sei denn, Sie auf der Seite zu einem Anker sich beziehen.

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

Lesen Sie den Anker Umschreiben Abschnitt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top