2012-04-25 11 views
0

私はちょうどApacheとmod_wsgiのプロダクション環境で私のdjangoをセットアップしました。すべてがうまくいっているようです。静的フォルダ(管理リソース用)へのアクセスを許可しました。サーバは期待どおりに動作しています。django mod_wsgiとApacheのファンキーな404の書き換えルール

DjangoでURLと一致しないWebページを表示しようとすると、ちょっと変わったことがあるようです。この見かけの404に達すると(私はDEBUGをオンにしています)。

この問題は、静的フォルダ内のディレクトリ一覧を無効にしたいという私の願望に起因しています。

オプション-Indexes引数を追加しました。これは機能しているようです。

唯一の問題は、リソースを見つけることができない場合(またはリソースがフォルダの場合)、404.shtmlをURLに追加するように見えることです。しかし、追加はかなり正しい言葉ではありません。代わりに、リクエストURLの最後の9文字を404.shtmlに置き換えます。私のDjango 404のデバッグ画面が表示され、私の元の要求の無意味なバージョンがあります。

は、ここに例を示します

リクエストURL: http://mobile.mywebsite.com/static/unknown_file

Djangoは受け取る:(404) 要求メソッドが見つからない

ページ: リクエストURL GET:しかしhttp://mobile.mywebsite.com/static/un/404.shtml

を、代わりに私が要求する場合 http://mobile.mywebsite.com/static/404.shtml

その後、同じテキストで上書きされるため、http://mobile.mywebsite.com/static/404.shtmlが表示され、明らかに変更されていません。

アイデア?

答えて

0

あなたのApacheの設定で定義されたカスタムHTTP文書を持っているようにそれはのようなもの、すなわち、聞こえる:

ErrorDocument 404 /un/404.shtml 
+0

はおそらく真実。いい視点ね。他のすべてのデフォルトを維持しながら、ある仮想ホストに対してそれを無効にする方法はありますか? – ecbtln

+0

仮想ホストのセクションで以下を使用して無効にする必要があります: 'ErrorDocument 404" "' – BluesRockAddict

+0

私はErrorDocument 404のデフォルトを行いました。 403のために同じことをした。 – ecbtln