2

最近、Apache サーバーを 2.0 から 2.2.24 にアップグレードしましたが、RedirectMatch.

私の古いRedirectMatch指令:

RedirectMatch ^/abc/abcd  /otherurl/someaction

Apache 2.0 では、HTTPS を使用してアクセスするとします。https://www.example.com/abc/abcdにリダイレクトされhttps://www.example.com/otherurl/someactionます。

しかし、Apache 2.2.24 では、http://www.example.com/otherurl/someaction(HTTPS ではなく HTTP) を返します。Apache がリクエスト スキーマを変更したようです。

http watch で HTTP レスポンスを確認すると、2.0 と 2.2.24 の違いがわかりました。

Apache 2.0 では、LocationHTTP 応答ヘッダーは/otherurl/someaction相対パス URL です。

しかし、Apache 2.2.24 では、Locationヘッダーはhttp://www.example.com/otherurl/someaction完全な絶対 URL です。

この問題について何か考えはありますか?

4

1 に答える 1

1

あなたの問題は、Redirect2.0 から 2.2(.6) に変更されたことだと思います。そしてドキュメントによると:

古い URL パスは、大文字と小文字が区別される (% デコードされた) パスで、スラッシュで始まります。相対パスは使用できません。新しい URL は、スキームとホスト名で始まる絶対 URL である必要があります。Apache HTTP Server 2.2.6 以降では、スラッシュで始まる URL パスも使用できます。この場合、現在のサーバーのスキームとホスト名が追加されます。

リダイレクトを見逃すだけの場合は、ルールを次のように変更することをお勧めします。https

RedirectMatch ^/abc/abcd https://www.example.com/otherurl/someaction

それが役に立てば幸い。

于 2013-10-10T09:25:06.233 に答える