0

ユーザーが URL にロケールを指定せずにアクセスした場合は一般的な登録ページにリダイレクトし、ロケールを指定してアクセスした場合は特定の登録ページにリダイレクトしたいと考えています。何らかの理由で以下が機能しないため、修正方法を教えてください。

RewriteCond %{QUERY_STRING} source=actp
RewriteRule ^/(en|de|fr|zh|ja|jp|ko|kr)/web/login/registration $1/web/login/registration? [R=301,L]

RewriteCond %{QUERY_STRING} source=actp
RewriteRule /web/login/registration /web/login/registration? [R=301,L]

例:

Before: website.com/web/login/registration
after: website.com/web/login/registration?source=actp 
before: website.com/kr/web/login/registration 
after: website.com/kr/web/login/registration?source=actp
4

1 に答える 1

0

前/後の URL に基づいて、ここで間違った RewriteCond を使用しています。source=actpRewriteRule を評価する前に、クエリ文字列が一致することを期待していたでしょう。前の URL にはそのようなクエリ文字列がないため、RewriteRule は評価されません。ここでは RewriteCond はまったく必要ありません。

これを試して:

RewriteRule ^/?((en|de|fr|zh|ja|jp|ko|kr)/)?web/login/registration$ /$2web/login/registration?source=actp [R=301,L]
于 2012-11-21T20:49:14.727 に答える