htaccessとは
ApacheWebサーバーのディレクトリごとの設定ができるファイルです。設定できる内容は、パスワードの設定、Webページのリダイレクトなどがあります。
レンタルサーバーでは、リダイレクトをするときなどに、このhtaccessファイルの編集が必要になります。
当記事は、リダイレクト機能に焦点をあてた記事になります。
よくあるリダイレクト設定
※すべてのサーバ環境で動作するとは限りません。
※Webサーバ上で「mod_rewrite」モジュールが利用可能な場合の設定方法です。
ほとんどのレンタルサーバーでmod_rewriteは利用できます。
httpをhttpsに統一
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*) https://%{HTTP_HOST}/$1 [R=301,L]
www有に統一/www無に統一
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com
RewriteRule ^(.*) http://www.example.com/$1 [R=301,L]
www無しに統一する場合は、wwwありのアクセスからのリダイレクト先をwwwなしにする。2行目と3行目の変更でできる。
RewriteCond %{HTTP_HOST} ^www\.example\.com
RewriteRule ^(.*) http://example.com/$1 [R=301,L]
他ホストドメインへのリダイレクト
ドメインのみの変更で、ドメイン後のURLは変えない
RewriteEngine On
RewriteRule (.*) http://example.com/$1 [R=301,L]
特定ページのリダイレクト
example.com/index.html→www.example.com/index.html
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/index.html
RewriteRule ^(.*) http://www.example.com/$1 [R=301,L]
条件によってリダイレクト先を変える
アクセスURL:example.com/abc.html
リダイレクト先URL:sub.example.com/abc.html
アクセスURL:example.com/index.html
リダイレクト先URL:www.example.com/index.html
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/index.html
RewriteRule ^(.*) http://sub.example.com/$1 [R=301,L]
RewriteRule ^(.*) http://www.example.com/$1 [R=301,L]
!は反対の条件を意味します。
!^/index.htmlは、%{REQUEST_URI}が^/index.htmlでなければの意味になります。
htaccess testerについて
htaccess testerとは、madewithlove(https://madewithlove.be/)というサイトが提供しているhtaccessの動作テストサービスです。https://htaccess.madewithlove.be/
サポートされていない部分もありますが、素早く構文のテストをすることができ、デバック情報も見ることができます。
1行1行コードの説明を知ることができるので、htaccessの設定の仕方を簡単に学ぶことができます。
私同様、素人には打ってつけのサービスです。ぜひ利用して煩わしい思いをしないようにしましょう。
それでは、良いプログラミングライフを。