コピペでOK!よく使う.htaccessリダイレクト設定のメモ

Webサイトを運営していると、たまにリダイレクト設定等でお世話になる「.htaccess」ですが、たまにしか使わないのであまり理解しないまま使っていることも多いと思います。また、変な設定をするとWebサイトが表示されなくなってしまう厄介なものでもあります。そこで、よく使う.htaccessのリダイレクト設定と最低限の情報をまとめましたので、参考にしてみてください。

.htaccessのリダイレクト設定で主に使うコード

RewriteEngine on

URLを書き換え機能をONにするという意味です。
ひとつの.htaccessファイル中で、1つだけあれば大丈夫なので、何度も書かないようにしてください。

RewriteBase

書き換え後のURLのベースとなるURLを指定するという意味です。
また、「RewriteBase /」と記載した場合は、.htaccessが格納されているディレクトリが指定されます。

RewriteCond

RewriteRuleを実行するための条件の定義が書かれています。RewriteCondに記述した条件が満たされた時のみRewriteRuleに記載されたURLへの転送が実行されます。

RewriteRule 転送元\.html http://転送先 [R=301, L]

転送元.htmlを、http://転送先にリダイレクトするという意味です。

        
(最終行の改行)

.htaccessの最後の行は、改行されて空行になっていないといけません。そういうルールだと覚えておきましょう。

Hogehoge [R=301, L]

L:Lastの略で、この処理はここで終わりという意味
R=301:301リダイレクトするという意味
Rとだけ記載すると、302リダイレクトになるので、301リダイレクトさせたい場合は、必ず「R=301」と指定してください。

よく使う.htaccess設定方法

wwwなしに統一する

以下の通り設定すると、「http://www.ドメイン.com」にアクセスしてきた場合、「http://ドメイン.com」にリダイレクトさせることができます。もちろん、「http://ドメイン.com」にアクセスしてきた場合は、そのまま表示されます。

.htaccess RewriteEngine on RewriteCond % {HTTP_HOST} ^www.ドメイン\.com RewriteRule ^(.*)$ http://ドメイン.com/$1 [L,R=301]

wwwありに統一する

以下の通り設定すると、「http://ドメイン.com」にアクセスしてきた場合、「http://www.ドメイン.com」にリダイレクトさせることができます。この場合も、「http://www.ドメイン.com」へのアクセスは、そのまま表示されます。

.htaccess RewriteEngine on RewriteCond % {HTTP_HOST} ^ドメイン\.com RewriteRule ^(.*)$ http://www.ドメイン.com/$1 [L,R=301]

http→httpsにリダイレクト

以下の通り設定すると、「http://〜」でアクセスしてきた時に、「https://〜」にリダイレクトさせることができます。

.htaccess RewriteEngine on RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

「hoge」ディレクトリ→「fuga」ディレクトリにリダイレクト

以下の通り設定すると、「http://ドメイン/hoge/」にアクセスしてきた時に、「http://ドメイン/fuga」にリダイレクトさせることができます。

.htaccess RewriteEngine on RewriteRule ^hoge(.*)$ /fuga$1 [L,R=301]

TOPページのindex.htmlを.html無しに統一する

以下の通り設定すると、TOPページの「.html」が表示されなくなります。
※phpファイルの場合は、index.htmlのところをindex.phpに変更してください。

.htaccess RewriteEngine on RewriteCond %{THE_REQUEST} ^.*/index.html RewriteRule ^(.*)index.html$ http://ドメイン.com/$1 [L,R=301]

注意事項

この記事のコードは301リダイレクト使用しています。
一般によく使われているレンタルサーバー等であれば、だいたい問題なく動くと思いますが、301リダイレクトを使用するには、以下の条件が必要になります。
(Xserver、ロリポップ、さくらインターネットなどでは普通に使えます)

  • .htaccessが使える
  • Apacheというウェブサーバーを使っている

補足

301リダイレクトとは?

ドメインやURLが変更された場合に用いられる転送処理。恒久的な転送の際に使われます。

302リダイレクトとは?

こちらは一時的な転送の際に使われます。

コメントを残す