QA@IT

apacheのリダイレクト、リライト

3307 PV

apacheのリダイレクト、リライト機能を用いてページ遷移を行う際に、旧URLを取得したいのです。
例えばhttp://example.com/test1からhttp://www.test.co.jp/test2にリダイレクトする場合、test2というjavaサーブレットでhttp://example.com/test1というURLを取得したいのですが、それは可能でしょうか?
PHPなどを使った場合に可能になったりするのでしょうか?

回答

どう受け取りたいかわかりませんが普通に

^(.+)$ /test2?from=$1

^(.+)$ /test2/$1

などとリライトすれば受け取りようはあると思います。

必要に応じてQSAフラグも忘れずに。

編集 履歴 (1)
  • 私的にはjavaサーブレットのrequest.gerRequestURL()によって新URLにリダイレクトする前の、旧URLを取得できればと考えていました。 -
  • Apacheで書き換えている場合、サーブレットのRequestURLとして拾うことは難しいんじゃないかと思います。リファラでとる手もありますが確実性に書けそうです。 -
  • ためしていませんが、 http://www.kahunaburger.com/2012/05/18/mod_rewrite-and-mod_headers-to-rewrite-headers/ を応用すればURLやクエリパラメータ以外で取り出せるかもしれません。 -
  • 難しそうなので、リバースプロキシを使用してみようと思います -
ウォッチ

この質問への回答やコメントをメールでお知らせします。