質問

Djangoが作成したWebサイトがあります。そして、アクセスするときに問題はありません ローカル作業環境の次の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の後に(スラッシュ以外の)他の文字を入れて、それらも削除されているかどうかを確認しましたか?

1つの推測として、#は現在のページのアンカーと見なされるため、#とその後のものはリライトで削除されます。

他のヒント

最初の答えに同意する必要があります-そして、Apacheの設定にアクセスできなければ、運が悪いかもしれません。 「CSharp」またはその静脈内の何かを使用する方法があります。

#はURIで特別な意味を持ち、/または?と同じです。します。他のシンボルでこの問題がありますか?最終的に、ページのアンカーを参照している場合を除き、URIで#記号を使用しないでください。

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

アンカー書き換えセクションを読みます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top