1

URL の先頭に余分なスラッシュがあると、Apache の LocationMatch ディレクティブで奇妙な動作が発生します。Apache docs によると、私が正しく読んでいれば、これはうまくいくはずです:

    <LocationMatch ^/appcontext/(a|b)>

            SetHandler weblogic-handler
            WebLogicCluster apphost01:xxxx,apphost02:xxxx
            WLProxySSL ON

    </LocationMatch>

ただし、次の URL を入力すると、バックエンド ホストにも転送されます。

https:// <ホスト名:ポート> ////////appcontext/a/

Apache docs では、正規表現に何かが欠けているか、mod_wl プラグインに問題がない限り、/appcontext/a/ にのみディレクティブを適用する必要があることを明確に述べています。

http://httpd.apache.org/docs/2.2/mod/core.html

「たとえば、<LocationMatch ^/abc> はリクエスト URL /abc と一致しますが、リクエスト URL //abc とは一致しません」

これを達成するための提案はありますか?

4

1 に答える 1

2

はい、Apache は書き換えルールで余分なスラッシュを折りたたみます。変数を使用THE_REQUESTして、余分なスラッシュを一致させて削除できます。これをルート .htaccess に配置します。

RewriteEngine On

RewriteCond %{REQUEST_URI} ^(.*?)//+(.*)$
RewriteRule ^ %1/%2 [R=302,L,NE]
于 2014-09-20T09:24:20.233 に答える