2012-03-29 5 views
1

私はDjangoベースのウェブサイトを持っています。 servertestをserver-testに置き換える以外は、servertestというパターンのURLを同じURLにリダイレクトしたいと思います。以下に示すように、例えば、以下のURLがマッピングされるこのURLをDjangoでどのように書き直すのですか?

をリダイレクトする:

http://acme.com/servertest/      => http://acme.com/server-test/ 

http://acme.com/servertest/www.example.com   => http://acme.com/server-test/www.example.com 

http://acme.com/servertest/www.example.com:8833 => http://acme.com/server-test/www.example.com:8833 

私はurls.pyに次の行を使用して作業を第一の例を得ることができます。

('^servertest/$', 'redirect_to', {'url': '/server-test/'}), 

ありません他の人のためにそれを行う方法を確認してください。そうすれば、URLのうち最も確かな部分だけが置き換えられます。

('^servertest/', 'redirect_to', {'url': '/server-test/'}), 

またはこれ:

答えて

2

は、次を使用します。

('^servertest/(?P<path>.*)$', 'redirect_to', {'url': '/server-test/%(path)s'}), 

それは、ゼロ以上の文字を取ります/ server-test /の後に置きます。

+0

ありがとうございました。 – TonyM

0

この表現してみてください( '^ servertest'、 'redirect_to' { 'URLを': '/ servertest /'})、

2

It's covered in the docs.

The given URL may contain dictionary-style string formatting, which will be interpolated against the parameters captured in the URL. Because keyword interpolation is always done (even if no arguments are passed in), any "%" characters in the URL must be written as "%%" so that Python will convert them to a single percent sign on output.

(重視鉱山。)

そして、彼らの例:

This example issues a permanent redirect (HTTP status code 301) from /foo/<id>/ to /bar/<id>/:

from django.views.generic.simple import redirect_to 

urlpatterns = patterns('', 
    ('^foo/(?P<id>\d+)/$', redirect_to, {'url': '/bar/%(id)s/'}), 
) 

だから、あなたはそれだけで素敵な簡単なフォームだと次を参照してください。

('^servertest/(?P<path>.*)$', 'redirect_to', {'url': '/server-test/%(path)s'}), 
+0

私はこのエラーが発生しました: "redirect_to()はキーワード引数 'url'に複数の値を持っているので、うまくいったSimeon Visserの答えを試しました。 – TonyM

+0

@TonyM:ええ、無名のグループは使えません。彼らは名前を挙げなければなりません。 (私はソースコードをチェックしたときに、 '* args'ではなく' 'kwargs''だと分かりました。) –

+0

説明をありがとう。 – TonyM

関連する問題