Basic認証を作ろう!

サイトを作った時、あなただけが見れるページや、特定の人物のみがアクセスできるページを作りたい時ってありますよね。
そんな時は、Basic認証がとても便利です。

では早速作ってみましょう!

この設定を行うには、「.htaccess」と「.htpasswd」を準備します。
メモ帳などで適当なファイルを作成し、作成後にファイル名を.htaccessに変えれば拡張子は入りません。

.htaccessの書き方

以下例では「test.html」ページにアクセスする時は、「.htpasswd」を経由させるという指示を出してみます。
※書き方の例としてlolipop.jpのフルパスを書いています。

<Files ~ “^\.(htaccess|htpasswd)$”>
deny from all
</Files>
AuthUserFile /home/users/2/lolipop.jp-●ユーザーコード●/web/ドメイン名/.htpasswd
AuthGroupFile /dev/null
AuthName “Please enter your ID and password”
AuthType Basic
order deny,allow
<Files test.html>
require valid-user
</Files>

作成した「.htaccess」に上記コードを張り付け、「AuthUserFile /」~「/.htpasswd」の間があなたのサイトのフルパスになります。ご自身のサーバーなどでフルパスを調べて記入しよう!
次に、<Files test.html>の箇所に、Basic認証をかけたいページ名を入れます。

.htpasswdの書き方

検索エンジンで「Basic認証パスワード暗号化ツール」を検索すると、すぐにそれらしきページが見つかるので、そこでIDとPasswordを決め、作成した「.htpasswd」に張り付けるだけでOKです。

あとは、そのファイルを関連するルート上にアップすれば設定完了です!

SEOにも役立つリダイレクトの活用メモ

.htaccessで使われる便利なリダイレクト方法をメモします。
SEOでも活用しているケースは多くあり、サイトを引っ越した時、検索エンジンに、こちらが新しいドメインですよ。と伝えたり、スマートフォンサイトを知らせるのに必要不可欠になります。
そもそも、検索エンジンにサイトの場所、変更などを知らせないと、せっかく作ったあなたのサイトは、誰も訪れることができなくなってしまいます。そのためにも.htaccessを活用しましょう。
※ここで記載されている「●●●」はあなたのドメイン名を表します。使用する際はそのままコピーして編集後、使用ください。改行などは入れずそのまま使用することをお勧めします。

フューチャーフォンからアクセスした時、TOPへリダイレクト

以下は、フューチャーフォンからアクセスした際のリダイレクトになります。
※ただし、TOPにリダイレクトされます。

RewriteCond %{HTTP_USER_AGENT} ^(DoCoMo|KDDI|DDIPOKET|UP\.Browser|J-PHONE|Vodafone|SoftBank)
RewriteRule ^$ http://www.●●●.jp/i/ [R]

スマートフォンからアクセスした時、TOPへリダイレクト

以下は、スマートフォンからアクセスした際のリダイレクトになります。
※ただし、TOPにリダイレクトされます。

RewriteCond %{HTTP_USER_AGENT} (Android|iPhone|iPod) [NC] RewriteRule ^$ http://www.●●●.jp/s/ [R]

便利な1対1リダイレクト

1対1リダイレクトとは、例えばPCサイトとスマートフォンサイトを同じ階層(フォルダ&ファイル名)で制作し、スマートフォンでアクセスした際、スマートフォンの同ページにリダイレクトするものです。

wwwを排除する場合

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.●●●\.jp
RewriteRule ^(.*)$ http://●●●.jp/$1 [R=301,L]

フューチャーフォンの1対1リダイレクト

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^(DoCoMo|KDDI|DDIPOKET|UP.Browser|J-PHONE|Vodafone|SoftBank)
RewriteCond %{REQUEST_URI} !(^/i/)
RewriteRule ^(.*)$ http://●●●/i/$1 [R=302,L]

スマートフォンの1対1リダイレクト

RewriteCond %{HTTP_USER_AGENT} (Android|iPhone|iPod) [NC] RewriteCond %{REQUEST_URI} !(^/s/)
RewriteRule ^(.*)$ http://●●●.jp/s/$1 [R=302,L]

www指定リダイレクト

「www無し」

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.●●●\.jp
RewriteRule ^(.*)$ http://●●●.jp/$1 [R=301,L]

「www有り」

RewriteEngine on
RewriteCond %{HTTP_HOST} ^●●●\.jp
RewriteRule ^(.*)$ http://www.●●●.jp/$1 [R=301,L]

存在しないページをTOPに戻すリダイレクト

ErrorDocument 404 http://●●●.jp/

別ドメインへ引越し

RewriteEngine On
RewriteCond %{http_host} ^www.引越し元.net
RewriteRule ^(.*) http://www.引越し先.com/$1 [R=301,L]

サイト内の引越し

Redirect permanent /main.html http://www.●●●.cc/main001.html

拡張子を変更するリダイレクト

あまり使われていませんが、拡張子の変更にも対応できます。例えば.HTMのように大文字で作成してしまった拡張子を小文字に変更した際、.htmlにリダイレクトできます。また.htmを.htmlに飛ばすこともできます。拡張子の無いページへのリダイレクトさせる場合は、以下の「.html」を消すだけでOKです。
よく使われる例では、index.htmlからindex.phpなどのリダイレクトですね。

RedirectMatch permanent (.*)\.HTML$ $1.html

PHPファイルを対応させる.htaccessの書き方

AddType application/x-httpd-php .htm .html
又は
AddHandler application/x-httpd-php5 .htm .html .php

AddType application/xhtml+xml .html

リダイレクト時に使用される301や302などを説明します。

■301
恒久的なリダイレクトで使用します。つまり、このURLが正しいジャンプ先の時です。

■302
一時的なリダイレクトで使用します。メンテ時とか、仮設ページを作った時などです。
※スマートフォンへの1対1リダイレクトを使用する際、使ったりします。

■403
一般の人は見ないで…という意味で、アクセスした場合のエラー時に使用します。

■404
このページは存在しないよ…という意味です。

■500
プログラムによる誤りを表す。CGIスクリプトの設定ミスなどで使われたりします。

■503
サーバーメンテ中や、アクセスが集中し過ぎて込み合っている時など

■400
ユーザーがアドレスを編集してジャンプした時…そのページが存在しなければ400へ

■401
パスワードが違う時などにジャンプさせます。