2009-03-18 14 views
2

私はDjangoで簡単なサイトを作った。私が使用するURLはhttp ::/www.example.com/nl/とhttp://www.example.com/fr/です。apache/djangoでhttpリクエストをリダイレクトする方法

私のDjangoのurls.pyは、以下の行を持っています

(R '^(PNL | FR)/?'、 'example.views.index')、

example.views.indexで言語パラメータを確認します。それが 'nl'ならテンプレートを表示します。それが「fr」の場合、私は別のテンプレートを表示します。

これはうまく機能しました。今、顧客は、二つの異なるURLが作られた:

http://www.dutch.com/http://www.french.com/

をそして最後に、私は質問頼むよ:

私のDjangoのコードを変更せずに新しいURLを使用するための方法はありますか?ユーザーがhttp://www.dutch.com/に行くと、http://www.example.com/nl/ページを表示するようApacheに指示できます。しかし、私はこれをどのようにして行うのですか?そして、djangoは引き続きURLから 'language'パラメータを取得できますか?

ご回答ありがとうございます。

+0

http://www.dutch.com/nl/に行くことはオプションではありません。 –

+0

だから、あなたはhttp://www.dutch.comからhttp://www.example.com/nl/へすべてのものをリダイレクトしたいのですか? – andi

+0

これはまさに私が欲しいものです、andi。私はまだDjangoの 'nl'にアクセスできることが重要です。 –

答えて

2

あなたがそう

redirectMatch 301 ^(.*)$ http://www.example.com/nl/ 

ようにApacheのリダイレクトディレクティブを使用することができますhttp://www.dutch.comに.htaccessファイルを使用することができた場合はこれがはdutch.comに送信されたすべての要求がexample.com/nlするをリダイレクトします

またない(これはexample.com/nl/するdutch.comにのみ「index.htmlに」をリダイレクトします

redirect 301 /index.html http://www.example.com/nl/ 

を使用することができます最初のパラメータはパスであり、URLにすることはできません - http://www

+0

これは私が必要とするかもしれないと思う。しかし、ユーザーには何が表示されますか?ブラウザのURLがwww.example.com/nlに変更されるのか、それともdutch.comに残りますか? –

+0

また、index.htmlページに '../fr/index.html'へのリンクがある場合、それをクリックするとどうなりますか? example.com/fr/index.htmlに行きますか?それとも、dutch.com上で1つのフォルダを開くことができないのでエラーになりますか? –

+0

はい、URLはexample.com/nlに変更されるので、2番目の問題は問題ではありません。ユーザーは、URLを見ていない場合でも気付かないことがあります。 2番目の問題は起こりません。 – andi

関連する問題