.htaccessを使用してできる基本的な内容を抑える

本題

.htaccessの基本的な知識

  • Apacheウェブサーバーで使用できる設定ファイルのこと(一部例外有)
  • ファイル名は「.htaccess」にする。(.txtなどの拡張子はつけない)
  • 文字コードは「UTF-8」(BOMなし)、改行コードは「LF」にする。※通常テキストエディタでファイルを保存する際に指定します。
  • 文章の最後に必ず改行を入れる
  • コメントアウトしたい箇所は#を記述する
  • 設定を行いたいディレクトリに.htaccessをアップロードする
  • 設置したディレクトリ以下で有効になる
  • 改行コードは「LF」で
    • Unix系の改行コードが「LF」形式のためを使う
    • 特に、Windowsの「メモ帳」などで作ると、「CRLF」形式になってしまうことがあるので注意

 

リダイレクト

全リクエストを404 not foundに

.htaccess

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)$ - [R=404,L]
</IfModule>

アクセス制限

Basic認証

簡易的な認証

動作イメージ

サイトにアクセスしたタイミングで、任意のユーザー名とパスワードの入力を必要とさせる

設定手順

.htaccessファイルを作る

.htaccess

#Basic認証の使用するための記述
AuthType Basic

#アクセス時のダイアログに表示される名称(任意)
AuthName "https://dev.maasaablog.com/"

#「.htpasswd」が存在する絶対パス
AuthUserFile /home/[サーバーID]/[ドメイン]/public_html/.htpasswd

#認証したユーザは誰でもアクセスOK
require valid-user

#外部から「.htaccess」「.htpasswd」が見えないように
<Files ~ "^\.(htaccess|htpasswd)$">
deny from all
</Files>

下記サイトで.htpasswd用のパスワードファイルを作成し.htpasswdファイルを作成して、貼り付ける

.htaccess用のパスワード作成ツール

htpasswdファイル生成(作成)
htpasswdファイル生成(htpasswdファイル作成)するweb・ウェブ制作に役立つ便利ツール。htaccessを利用したユーザー認証によるアクセス制限(ベーシック認証)が可能です。

.htpasswd

生成したパスワード

最後に、.htaccessと.htpasswdをサーバーのドキュメントルート下に配置し、パーミッションを604で設定して完了

※ここまでの設定を行っても、500 Internal Server Errorが生じる場合は、.htaccessファイルに文法誤りがある可能性が高いので見直してみてください

ダイジェスト認証

Basic 認証とは異なりブラウザとサーバ間でユーザー名とパスワードの情報がやり取りされる際に MD5でハッシュ化されて送信される

任意の長さの原文を元に128ビットの値を生成するハッシュ関数(要約関数)の一つ。 生成された値はハッシュ値と呼ばれる

※飛躍的にセキュリティ面が向上するということでもないらしく、公式では Basic 認証+ SSL を推奨されている模様

IP制限

  • 接続元のIPアドレスによって制限可能
  • 社内ネットワークの接続元IPアドレス(もしくはIPアドレス空間)からしかアクセスできないようにするといった用途が多い
  • 以下は原則アクセス禁止とし、許可するIPのみホワイトリスト形式で記述する例です

.htaccess

<IfModule mod_rewrite.c>
order deny,allow
deny from all
allow from XXX.XXX.XX.XX ←ここにIPを設定
</IfModule>

以上です

Apache学習におすすめの書籍

タイトルとURLをコピーしました