Apache の書き換えモジュールに問題があります。これは私がやろうとしていることです:
前にリバースプロキシとしてapacheを使用して、サーバー上でconfluence(tomcat)を実行しています。また、Apacheで認証を使用しています(フォーム認証)。したがって、[server]/confluence にアクセスしようとすると、認証ルーチンを含むファイル login.php にリダイレクトされます。ログインが成功すると、プロキシによって tomcat にアクセスできるようになります。他のすべての要求はブロックされます。[server]/login.php は実際に htdocs に存在するため、これはすべてのリクエストに対して簡単に機能します。他のすべてのリクエストは
FallbackResource wrong_url.shtml
行き止まりに陥ってしまうので、login.php への直接アクセスをブロックしたいと思います。
${REQUEST_URI} で RewriteCond を使用してこれを実行しようとしたのは、phpinfo() が私にこれを与えたためです:
<server>/confluence (you automatically get redirected to login.php by apache): php says REQUEST_URI = /confluence
<server>/login.php: php says REQUEST_URI = /login.php
理にかなっていますが。今私がしたことは次のとおりです。
<VirtualHost *:80>
ServerName 192.168.2.237
RewriteEngine on
RewriteCond %{REQUEST_URI} ^/login.php$
RewriteRule ^/login.php$ wrong_url.shtml [L]
</VirtualHost>
しかし、これは正しく機能しません。まったく機能しないか、すべてがクラッシュします。これが明らかな場合はご容赦ください。ただし、書き換えの初心者です。私のせいでこれを行う方法がどこにあるのか誰か教えてもらえますか (おそらく、これは本当に簡単です)。