0

実行している別のサーバーからURLをフェッチする一連のサーバーで実行されているアプリケーションがあります。

フェッチされているこのURLは、スペルミスのURLパラメータを含むハードコードされたURLで構成されています。アプリケーションを変更して他のすべてのサーバーにアップロードするのではなく、ターゲットサーバー上の正しいURLに301リダイレクトするための.htaccessルールを作成することで、これを修正したいと思います。

正規表現を使用してRedirectRuleを作成することでこれを実行できると思いますが、私はそれを嫌います。

これが私が達成しようとしていることです:

http://www.example.com/some-page/?param1=exparam1&param2=misspeltparam&param3=exparam3

上記のURLは次のURLにリダイレクトされます:

http://www.example.com/some-page/?param1=exparam1&param2=correctparam&param3=exparam3

上記の例ではparam2=misspeltparam、とparam2=correctparam(つまり、パラメーター名と値の両方)は定数です。他のすべては動的です。

param2また、上記の説明から明らかでない場合に備えて、スペルミスは、に対してのみ発生します。

4

1 に答える 1

1

次のコードのようなものがその仕事をするはずです:

RewriteEngine On

RewriteCond %{QUERY_STRING} ^(.*&param2=)misspeltparam(.*)$
RewriteRule .* %{REQUEST_URI}?%1correctparam%2 [R=301,L]
于 2012-11-29T20:36:57.133 に答える