문제
Django가 만든 웹 사이트가 있습니다. 지역 작업 환경에서 URL에 따라 액세스 할 때 문제가 없습니다.
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 파일을 어떻게 재정의 할 수 있습니까?
해결책
더 나아 가기 전에 몇 가지 팁 :
공간 (%20) 또는 악센트 ASCII 캐릭터와 같은 다른 캐릭터와 함께 시도해 보셨습니까? 또한 슬래시를 제외한 23 %(슬래시 제외) 이후에 다른 캐릭터를 넣어 보았습니까?
한 가지 추측은 #이 현재 페이지의 앵커로 간주되면 # 및 후에 모든 것이 다시 쓰기에서 벗겨 질 것이라고 생각할 수 있습니다.
다른 팁
첫 번째 답변에 동의해야합니다. 그리고 Apache 구성에 액세스하지 않으면 운이 좋지 않을 수 있습니다. 'csharp'또는 그 정맥에 무언가를 사용하는 것이 갈 수있는 방법 일 수 있습니다.
# URI에서 특별한 의미가 / / 또는? 하다. 다른 기호와 함께이 문제가 있습니까? 궁극적으로 페이지의 앵커를 언급하지 않는 한 어쨌든 URI에 # 사인을 사용해서는 안됩니다.
http://httpd.apache.org/docs/2.2/rewrite/rewrite_guide.html
앵커 재 작성 섹션을 읽으십시오.