0

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>

しかし、これは正しく機能しません。まったく機能しないか、すべてがクラッシュします。これが明らかな場合はご容赦ください。ただし、書き換えの初心者です。私のせいでこれを行う方法がどこにあるのか誰か教えてもらえますか (おそらく、これは本当に簡単です)。

4

1 に答える 1

0

サーバーログを確認しましたか? RewriteLogLevel を有効にして (9 に) 設定し、要求フローをデバッグします。

このような基本的なタスクには mod_rewrite は必要ありませんが、代わりに mod_alias を使用してください。

<VirtualHost *:80>
    ServerName 192.168.2.237
    Alias /login.php /wrong_url.shtml
</VirtualHost>
于 2013-08-26T12:42:05.963 に答える