【htaccess】404エラー、Basic認証、CGIの許可、index、スマホやSSLページにリダイレクト。
今日はhtaccessのお話をします。ホームページを制作している上でかかせないのがhtaccessです。
今回はこのhtaccessを取り上げて便利なものをアップしておきたいと思います。 そもそもこのhtaccessってなんぞやということですがWeblioには以下のような記述になっています。
.htaccessとは、WebサーバーのApacheにおける、サーバーのディレクトリごとの設定情報を記しておくためのファイルのことである。分散設定ファイルと形容されることもある。
.htaccessに記述された設定情報は、.htaccess自体が設置されたディレクトリと、その下位階層に位置したサブディレクトリに対して有効となる。設定可能な内容としては、パスワードの設定(Basic認証)、特定のホストコンピュータからのアクセスの拒否、Webページのリダイレクトなどを挙げることができる。
Apacheにおけるメインの設定は、httpd.confと呼ばれる設定ファイルによって行われる。httpd.confは、Webサーバーの管理者(スーパーユーザー)によってのみ編集や更新が可能である。httpd.confの設定によって、.htaccessで設定できる内容を制限することもできる。
要するにホームページを表示する際にサーバー上でいろいろな設定や制御をすることができるのだけれどもhttpd.confというメインとなる設定ファイルを触ってしまうと壊れてしまう可能性があるのでhtaccessというファイルで他のディレクトリに影響をうけることなく設定できますよ、というもの。 設定できることはいろいろありますが今回は以下の内容を紹介します。
目次
パスワード認証(Basic認証)
Basic認証はホームページにブラウザでアクセスした際にIDとパスワードを求められるよくあるアレです。
1).htaccessファイルに以下のように記述
1 2 3 4 5 6 7 |
AuthUserFile /絶対パス/.htpass AuthGroupFile /dev/null AuthName "Please enter your ID and password" AuthType Basic <Limit GET> require valid-user </Limit> |
“/絶対パス/.htpass”はサーバー上のフルパスになります。例えば/home/user/saito/とか/var/www/httpd/などです。 サーバーによって異なりますのでレンタルサーバーに聞いてみてください。
2).htpassに以下のようにパスワードを記述
1 |
guest:ziH9r/36S0stE |
書式は”ユーザーID(英数)/暗号化されたパスワード”です。 パスワードは必ず暗号化される必要があります。例えば0000というパスワードの場合「ke9659oc.G6s」のようになります。パスワードの変換に関してはパスワード生成CGIを同梱していますのでそちらを利用してください。
ダウンロード:basic認証用htaccess ※設置方法の説明書も入っています。
CGIを動作するようにする
このhtacessはサーバーでCGIが動くようにするものです。 最近のレンタルサーバーではCGI(perl)が動作しないなんてサーバーはほぼ無いと思いますが、プランによって動作しないものがあります。 たとえば専用サーバー(root権限が与えられている)やVPS、cgi-binでしかCGIが動作しないサーバー。 もしブラウザでCGIにアクセスした際にブラウザ上ににソースがそのまま出力されていたらこれを使ってみてください。
1)htaccessを該当のディレクトリにアップロードしてください。 Internal Server Errorが出たらそもそも使ってはいけないサーバーですのでサーバー会社に問い合わせてください。
.htaccessの書き方
1 2 3 |
DirectoryIndex index.cgi Options FollowSymLinks ExecCGI AddType application/x-httpd-cgi .cgi |
ダウンロード:CGI用htaccess
index.htmlやindex.phpなどをデフォルトのトップページにする
ホームページを見ているとファイル名が表示されないいわゆる/で終わっているURLがあります。 たとえばhttp://www.1st-net.jp/とかhttp://www.yahoo.co.jp/とか下層ページに於いても同じでhttp://www.google.co.jp/sample/など ファイル名で終わる場合というのはhttp://www.yahoo.co.jp/sample1.htmlなどのように最後に.htmlという拡張子が付く場合のことをいいます。
じつはこれhttp://www.1st-net.jp/というのはhttp://www.1st-net.jp/index.htmlのようにファイルがあるんだけれどもURLを短くするためにindexを省略しているんですね。今時ホームページのURLがhttp://www.yahoo.co.jp/index.htmlなんかになっていたらかっこ悪いですよね。それを省力するためのhtaccessになります。
以下の例ではindex.html > index.cgi > index.php > index.shtml の優先度でページがファイル名なしで出力されます。 ファイルを上記のように複数記載することはOKです。いろいろなディレクトリで汎用的につかえるため複数記載しています。
.htaccessの書き方
1 |
DirectoryIndex index.html index.cgi index.php index.shtml |
ダウンロード:ディレクトリインデックス用htaccess
PC・スマホ・ガラケーの場合別ページへのジャンプ
このhtaccessを使ってパソコンサイトにアクセスしたスマホーユーザーをスマホ専用ページに自動的にジャンプさせるものです。 たとえばhttp://www.hogehoge.com/ → http://www.hogehoge.com/sp/ へジャンプのようになります。
.htaccessの書き方
1 2 3 4 |
RewriteEngine On RewriteCond %{HTTP_USER_AGENT} (iPhone|Android.*Mobile|Windows.*Phone) [NC] RewriteCond %{HTTP_COOKIE} !viewmode=pc RewriteRule ^$ /sp/ [R,L] |
ダウンロード:スマホ切替用htaccess
ちなみに旧来のガラケーの場合の切り替え用 .htaccessの書き方
1 2 3 4 5 6 7 8 |
RewriteEngine on RewriteCond %{HTTP_USER_AGENT} "DoCoMo" [NC,OR] RewriteCond %{HTTP_USER_AGENT} "J-PHONE" [NC,OR] RewriteCond %{HTTP_USER_AGENT} "Vodafone" [NC,OR] RewriteCond %{HTTP_USER_AGENT} "SoftBank" [NC,OR] RewriteCond %{HTTP_USER_AGENT} "KDDI" [NC,OR] RewriteCond %{HTTP_USER_AGENT} "UP.Browser" [NC] RewriteRule ^$ http://www.sample.jp/i/ [R] |
ダウンロード:ガラケー切替用htaccess
SSLページに強制的に切替
昨今セキュリティ上の観点からSSLのサイトに切り替えるところが増えてきました。 GoogleもすべてのページにおいてSSLにするよう勧めていますのでこのhtaccessをつかってhttpでアクセスしてもすべてhttpsに自動的に切り替えてくれるようにしてみましょう。 ※サーバーで独自SSLは購入する必要はありますのでご注意を。
.htaccessの書き方
1 2 3 |
RewriteEngine on RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L] |
ダウンロード:SSLジャンプ用htaccess
www有り無しを統一
URLでwwwがあるサイトと無いサイトがあります。どちらのURLでもOkという場合ならいいのですがSEOの絡みや名刺に書く手前どちらからに統一したい場合があります。 その場合に使えるhtaccessです。
.htaccessの書き方
・wwwありのURLに統一したい場合
1 2 3 |
RewriteEngine on RewriteCond %{HTTP_HOST} ^sample\.com RewriteRule ^(.*) http://www.sample.com/$1 [R=301,L] |
・wwwなしのURLに統一したい場合
1 2 3 |
RewriteEngine On RewriteCond %{HTTP_HOST} ^www\.sample\.com RewriteRule ^(.*) http://sample.com$1 [R=301,L] |
ダウンロード:www有り無し用htaccess
404エラー(not found)の表示
googleのSearch Consoleにおいて404ソフトエラーというものが出ていませんか? それが出ているということは404エラーをgoogleロボットさんにレスポンスしていないということです。SEO的にははっきりはしませんが改善されたほうがいいと思います。
.htaccessの書き方
1 |
ErrorDocument 404 /404.html[R=301,L] |
ここでミソなのが”/404.html”の部分をドキュメントルートからの絶対パスで書くこと。http付きのURLでも404は表示されますがGoogleはそのステータスを受け取れないのでNGです。 NG:http://sample.com/404.html もちろん404.htmlというファイル名は別にerror.htmlというようにしてもOKです。ファイル名は任意です。
ダウンロード:404エラー用htaccess
以上です。 よかったら使ってみてください。
今日はこのへんで。
web制作、1度はこんなことありませんか?
最後まで記事を読んでくださりありがとうございます!
ここまで読んでくださった方々の中には、Web制作を行っている方、企業や個人の宣伝としてwebで宣伝されている方など たくさんいらっしゃるかと思います。
しかし、個人でweb作成をされている方、企業としてweb作成をされている方、
お問合せページに使いにくさをかんじてませんか?
たくさんの方々からお問い合わせが来ると、お客様への返信の管理やその他機能に物足りなさを感じませんか?
あるいは、メールフォームに拡張機能を追加しようとするとほしい機能が有料だった…なんてこともありませんか?
そんな方のお悩みを解決するツールが、、
EasyMailという完全無料のメールフォームです!
弊社ではEasyMailというオープンソースメールフォームCMSを展開しております!
今まではかゆいところに届かなかった、もっとカスタマイズ性が高いものが欲しい、などなどお客様の声をふんだんに反映したものになっております!
大事なことなのでもう一度言いますが、完全無料です!
詳しくは弊社のEasyMail特設ページをご覧ください!
【EasyMail】URL:https://www.mubag.com/
株式会社ファーストネットジャパンでは、1998年の創業から培ってきた知見・経験を基に、良質かつユーザー第一のWEBサイトを制作して参りました。
弊社は、コーポレートサイト・採用サイト・ECサイト・LPサイトなど、様々なWEBサイトの制作に対応しております。
またSEO対策・SNS運用・リスティング広告運用などWEBマーケティングも得意としており、集客にお悩みの方はぜひご相談ください。
まずはお気軽にお問合せください。