2009-06-24 9 views
11

mod_wsgiを使用してApacheで実行するDjangoプロジェクトを設定しています。私はApacheのディレクトリ 'cflow'の下でDjangoを実行しようとしていますが、リダイレクトに関する問題が発生しています。Django Apache Redirect問題

私のapacheのconfには、次のようになります。

... 
WSGIScriptAlias /cflow "C:\Program Files\Apache Software Foundation\Apache2.2\wsgi\django.wsgi" 
<Directory "C:\Program Files\Apache Software Foundation\Apache2.2\wsgi"> 
    Order allow,deny 
    Allow from all 
</Directory> 
<Directory "C:\Projects\myproject\src"> 
    Order allow,deny 
    Allow from all 
</Directory> 

私はに実行している問題は、ユーザーがログインしていない場合は、/cflow/somepage.htmlの要求はにreidrectedされるということです/ accounts/login?next =/cflow/somepage.html。この新しいアドレスはdjangoのルート(cflow)以下ではないので、Apacheは404 Not Foundで応答します。

私の質問は、Apacheのアプリケーションルートディレクトリの下にマップされたDjangoリダイレクトをどのようにすることができますか?私。どうすれば/ accounts/...ページを/ cflow/accounts/...にすることができますか?

ありがとうございました。しようとする

答えて

15

もの:

  1. 変更し、現在のドメイン"sites" frameworkで "yourdomain.tld/CFLOW" へ。 django adminやdumpdata/loaddata manage.pyコマンドを使うのは簡単です。

  2. あなたのサイトはlogin_requiredデコレータを使用しているようです。その特定のケースでは、あなたはsettings.pyに追加することができます。

    LOGIN_URL = '/ CFLOW /アカウント/ログイン/'

+3

感謝を。私はDjangoアプリケーションに透過的なソリューションを期待していました。私は、1つのアドレス/サーバー上でサイトをテストし、追加の設定をせずに別のサイトに展開できるようにしたいと考えています。 サイトのフレームワークを調べます。先端に感謝します。 – liminal

+1

私はそれももっと簡単だろうと思っていましたが、これは間違いなく正解です。私は同じ問題を抱えていて、最終的にこの答えを見つけました。ありがとう! –