2

リダイレクトを機能させることができませんでした。私が望んでいた動作は、次からリダイレクトされます。

www.mysite.com/?id=12345

www.mysite.com/?other_id=12345

私が書いたルールは、次のように最後に一致するすべての URL を取得するようです。

www.mysite.com/directory/another/?id=12345

これをすべてのレベルではなく、ルートレベルで機能させたいだけです。

私が現在持っているルールは次のとおりです。

RewriteCond %{QUERY_STRING} ^(.*&)?id=([^&]+)$
RewriteRule ^(.*)$ http://%{SERVER_NAME}/?other_id=%2 [R=301,L]

何らかの理由で、最初の正規表現がないと受け入れられないため、最初の正規表現を含める必要がありました。最初の ^(.*&) がなければ、サイトが動作しないリダイレクトを作成し、爆撃していると言い続けました。これは私の問題の一部である可能性があります.

このルールを記述するより良い方法はありますか? または、ルートレベルの一致だけでは不可能ですか?

ありがとうございました、

シルバータイガー

4

1 に答える 1