前回は、以下の記事で、リバースプロキシの設定方法を解説しましたが、
今回は「.htaccess」を用いた「301 リダイレクト」の方法をまとめます。
- そもそも301 リダイレクトってなに?
- 301リダイレクトの設定方法
- 301リダイレクト設定が完了したので、動きを確認しよう
- 301リダイレクトと、リバースプロキシの違い
- 検索エンジンに新しいURLを知らせるなら、301リダイレクト
- まとめ
そもそも301 リダイレクトってなに?
301リダイレクトとは、特定のURLに来たリクエストを、別のページに転送するための方法です。
ホームページやブログのURLが変わったときなどによく使われるテクニックです。
301リダイレクトの設定方法
2箇所設定が必要です。
.htaccessの設定
まずは、転送設定したいフォルダの下に、「.htaccess」というファイルを作ります。
以下にサンプルを書きます。
RewriteEngine on RewriteRule ^index.html$ http://localhost/reverse-proxy.html [L,R=301]
解説します。
まず、Rewriteengin on は、こちらは301リダイレクトをするのにOnする必要があるので記載してます。
RewriteRuleですが、
- 「^index.html$」は転送ルールを表します。
- 正規表現でパターンマッチングされています。
- 「^」は「~ではじまり」
- 「$」は「~で終わる」 という意味です。
この場合は、「index.html」が転送対象である、ということを示しています。
http://localhost/reverse-proxy.html
は転送先のURLを表します。
[L,R=301]では、
- L はここで設定終わり、という意味を、
- R=301は、301リダイレクトする、という意味を表します。
.htaccessでリダイレクトさせる許可の設定
もう一箇所設定が必要です。
.htaccessでリダイレクトをするために、許可設定が必要です。
rootユーザーで、httpdの設定ファイル「/etc/httpd/conf/httpd.conf」を開いてください。
今回は、「/var/www/html」の下に、「.htaccess」を置きましたので、該当箇所の設定を変更します。
デフォルトでは、「None」になっていますので、これを「FileInfo」に変更してください。
リダイレクトを許可、という意味です。
以下の画面のようなイメージです。
ちなみに、「All」でも構いませんが、その他の「.htaccess」設定をなんでも許可、という意味になりますんで、注意してください。
この後、以下のコマンドで、httpdを再起動してください。
systemctl restart httpd
301リダイレクト設定が完了したので、動きを確認しよう
早速、動かしてみましょう。
ブラウザで、http://localhost/index.htmlと打ってみます。
301リダイレクトと、リバースプロキシの違い
この前紹介したリバースプロキシでも、特定のURLにきたリクエストを転送していましたが、今回の301リダイレクトとは何が違うのでしょうか。
転送された結果、URLが変わらないのが、リバースプロキシ。URLが変わるのが301リダイレクトです。
ためしに、reverse-proxy.htmlというファイルを作って、そこに転送させるように設定して実験します。
リバースプロキシ こちらはリバースプロキシです。
ブラウザで、http://localhost/rp と打ってエンターを打ちました。
URLはそのままです。
一方、301リダイレクトは、先程の例の通り、
http://localhost/index.html と打ったところ、
http://localhost/reverse-proxy.html
にURLが変わっています。
リバースプロキシは、httpdサーバがそのまま別のURLに転送してくれます。
ブラウザは、転送されたことを知りません。
301リダイレクトは、一度ブラウザに転送先URLが示されて、ブラウザが転送先URLにアクセスします。
なので、このような違いになるのです。
検索エンジンに新しいURLを知らせるなら、301リダイレクト
ホームページやブログの引っ越しでは、一般的に301リダイレクトを使います。
なぜなら、引っ越し先のURLを、検索エンジンに知らせたいからです。
まとめ
301リダイレクトの使い方、わかったでしょうか。
どんどん活用してくださいね。