web-dev-qa-db-ja.com

RedirectMatchは、いくつかのURLを除くすべてのURLをhttpsにリダイレクトします

現在、次のディレクティブを使用して、すべてのhttpURLをhttpsURLにリダイレクトしています。

RedirectMatch permanent ^(.*)$ https://someserver.com$1

今、私は以外のすべてをリダイレクトしなければならないシナリオで立ち往生しています http://someserver.com/test または http ://someserver.com/test/users または基本的に/ testの後に何かが続くもの。

また、「/ test ..」が含まれるこれらのURLを通常のhttpにリダイレクトして、アクセス拒否ページ(htmlページ)を表示したいと思います。複雑さを増すために、「/」を通過するすべてのリクエストは、<Location />およびProxyPassディレクティブを使用してajp経由でTomcatにルーティングされます。

この場合、基本的にRedirectMatchのみを使用する必要があります。これは、Rewriteを使用する必要がある場合、他の多くの構成を変更する必要があるためです。

複数のRedirectMatchを使用できますか?もしそうなら、どうすれば上記のシナリオの正規表現を構成できますか...

1
Abhishek

負の先読みを使用する:

RedirectMatch permanent (^((?!test).)*)$  https://someserver.com$1
1
yadaya