お金プログラム ~だれでもノマド~

ノマド的な稼ぎ方、投資、IT系(プログラミング)に関するブログです。

Apache HTTP Server 2.4 (httpd)で、301リダイレクトする方法

前回は、以下の記事で、リバースプロキシの設定方法を解説しましたが、

 

www.toyo104-memo.com

 

今回は「.htaccess」を用いた「301 リダイレクト」の方法をまとめます。

 

 

そもそも301 リダイレクトってなに?

301リダイレクトとは、特定のURLに来たリクエストを、別のページに転送するための方法です。

 

ホームページやブログのURLが変わったときなどによく使われるテクニックです。

 

f:id:toyo--104:20180604234733p:plain

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」を置きましたので、該当箇所の設定を変更します。

 

<Directory "/var/www/html">の下の、「Allow Override」を変更します。

デフォルトでは、「None」になっていますので、これを「FileInfo」に変更してください。

リダイレクトを許可、という意味です。

 

以下の画面のようなイメージです。

f:id:toyo--104:20180604232315p:plain

 

ちなみに、「All」でも構いませんが、その他の「.htaccess」設定をなんでも許可、という意味になりますんで、注意してください。

 

この後、以下のコマンドで、httpdを再起動してください。

systemctl restart httpd

 

301リダイレクト設定が完了したので、動きを確認しよう

早速、動かしてみましょう。

ブラウザで、http://localhost/index.htmlと打ってみます。

 

f:id:toyo--104:20180604233758p:plain

 

ちゃんと転送されました。

f:id:toyo--104:20180604233835p:plain

 

301リダイレクトと、リバースプロキシの違い

この前紹介したリバースプロキシでも、特定のURLにきたリクエストを転送していましたが、今回の301リダイレクトとは何が違うのでしょうか。

 

転送された結果、URLが変わらないのが、リバースプロキシ。URLが変わるのが301リダイレクトです。

 

ためしに、reverse-proxy.htmlというファイルを作って、そこに転送させるように設定して実験します。

 

リバースプロキシ

こちらはリバースプロキシです。

ブラウザで、http://localhost/rp と打ってエンターを打ちました。

URLはそのままです。

 

f:id:toyo--104:20180604231718p:plain

 

一方、301リダイレクトは、先程の例の通り、

http://localhost/index.html と打ったところ、

http://localhost/reverse-proxy.html

URLが変わっています。

f:id:toyo--104:20180604231634p:plain

リバースプロキシは、httpdサーバがそのまま別のURLに転送してくれます。

ブラウザは、転送されたことを知りません。

 

301リダイレクトは、一度ブラウザに転送先URLが示されて、ブラウザが転送先URLにアクセスします。

 

なので、このような違いになるのです。

 

検索エンジンに新しいURLを知らせるなら、301リダイレクト

ホームページやブログの引っ越しでは、一般的に301リダイレクトを使います。

なぜなら、引っ越し先のURLを、検索エンジンに知らせたいからです。

 

まとめ

301リダイレクトの使い方、わかったでしょうか。

どんどん活用してくださいね。