Apache の RedirectMatch ディレクティブを使用して、独自の Web スペースにアクセスする単一 (Linux) ユーザーを除くすべてのユーザーを HTTPS URL にリダイレクトしようとしている状況があります。ユーザー名を否定する正規表現コードを見つけました。
^((?!andy).)*$
しかし、ディレクティブで使用しようとすると:
RedirectMatch ^((?!andy).)*$ https://www.example.com/
URL:
http://www.example.com/~andy/
それでも HTTPS URL にリダイレクトされます。
https://www.example.com/
リダイレクトを無視したいとき。私は正規表現 (または Apache) の専門家ではないので、これを機能させるための助けをいただければ幸いです。
ありがとう、スティーブン
編集:OK、プロットが厚くなります...行をコメントアウトすると:
# RedirectMatch ^((?!andy).)*$ https://www.example.com/
Apache を再起動してから、次の URL を試してください。
http://www.example.com/andy
期待どおりの 404 応答が返されます。しかし、URLを試してみると:
http://www.example.com/~andy
リダイレクトがトリガーされ、次の場所にリダイレクトされます。
https://www.example.com/
私が言ったように、リダイレクトはコメントアウトされており、サーバーを再起動しました。これはどのように起こりますか?したがって、これは単なる正規表現ではなく、Apache が指示なしでリダイレクトしているようです!