1

ルールを書き直すことに関しては、私は少し環境に優しく、助けを求めています。私は物事を行う必要があります:

  1. apache を使用してリバース プロキシにする
  2. パラメータ ハッキングの場合に備えて、URL からいくつかのパラメータを取り除きます。

次のようなURLがあります。

http://server.com/search?param1=xxxx&param2=yyyy&param3===zzzz

また

http://server.com/search?param2=xxxx&param1=yyyy&param3===zzzz

パラメータは任意の順序で指定できます。

エンドポイント サーバーに param2=CONST のみを取得させたい。そのため、param2 を削除して独自のものを追加していました。

さらに複雑なことに、これはあり得ません.htaccess(httpd.conf書き換え規則の微妙な違い)。

これが私が現在持っているものです(正しく一致していません)。

Options +FollowSymLinks
ProxyPreserveHost On
RewriteEngine On
RewriteCond %{QUERY_STRING} ^(.+&)?param2=(.*)&(.*)?$ [NC]
RewriteRule ^/search$ http://%{HTTP_HOST}/search?%1%2&%3&param2=XXXXXX [R=301,L]


ProxyPass /search http://localhost:8080/search
ProxyPassReverse /search http://localhost:8080/search

アップデート


私はそれを次のように動作させました:

RewriteCond %{QUERY_STRING} !site=MY_CONST
RewriteCond %{QUERY_STRING} (.*)(^site=[a-zA-Z0-9]+&?|^&site=[a-zA-Z0-9]+&|&site=[a-zA-Z0-9]+)(&?.*) [NC]
RewriteRule ^/search$ http://%{HTTP_HOST}/search?%1%3&site=MY_CONST [L,R=301,NS]

最初の条件により、ルールを同じリソースに書き換えるという無限の再帰から抜け出すことができます (プロキシできるようにするため)。

それが役に立てば幸い。

4

0 に答える 0