7

Django で作成した Web サイトがあります。また、ローカルの作業環境で次の URL にアクセスする場合は問題ありません。

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

「c%23」は「c#」の URL コードで、ローカルでは問題なく動作します。しかし、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 ファイルへのアクセス許可を持っていないときにどうすれば上書きできますか?

4

4 に答える 4

5

さらに先に進む前に、いくつかのヒントを以下に示します。

スペース (%20) やアクセント付きの ASCII 文字など、他の文字を試しましたか? また、%23 の後に (スラッシュ以外の) 他の文字を入れてみて、それらも削除されているかどうかを確認しましたか?

1 つの推測として、# は現在のページのアンカーと見なされるため、# とその後ろにあるものはすべて書き直しで取り除かれます。

于 2009-01-04T16:29:10.787 に答える
1

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

于 2009-03-19T14:23:44.427 に答える
1

私は最初の答えに同意する必要があります-Apache構成にアクセスできないと、運が悪いかもしれません. 「CSharp」などを使用するのが良い方法かもしれません。

于 2009-01-23T18:50:07.823 に答える