ウェブサーバーのリダイレクトと内部リライト
間違えやすそうなのでメモ。
以降、例示を踏まえ説明する。
Apacheで運用しているウェブサイトにて、次のように、指定のリクエストがあった際に指定のURLからレスポンスを返したい。
リクエスト:
https://hoge.com/fuga/?prm_a=1&prm_b=2
実際にアクセスするURL:
https://hoge.com/fuga/index.html?prm_a=1&prm_b=2
リダイレクト
この時、リダイレクトで対応しようとすると、Apacheの設定は次の通り。
RewriteEngine On
RewriteRule ^fuga/$ /fuga/index.html [R=301,L]
また、ウェブブラウザのアドレスバーのURLは、レスポンスを返すURLに書き換わる。
内部リライト
ただ、場合によっては、ウェブブラウザのアドレスバーのURLはそのままにしたい、という事もある。
この時は設定でリダイレクトをせず、ただURLをリライトするだけにする(=内部リライト)。具体的にはApacheの設定は次の通り。
RewriteEngine On
RewriteRule ^fuga/$ /fuga/index.html [L]