Webサーバ用の設定ファイル「.htaccess」でできることを6つをまとめました。
※ファイル名は、「.htaccess.txt」などは禁止。
※.htaccess 設定のディレクティブ階層上から順番に適用される。
①アクセス制限(BASIC認証)
↓WordPressでのベーシック認証
ベーシック認証を用いると、指定されたディレクトリにアクセスした人に対してIDとパスワードの入力エリアのついたダイアログボックスを表示し、認証情報の入力を求めることができます。
.htaccessと.htpasswdの2つのファイルを使います。
.htaccess
AuthType Basic
Require Group admins
AuthName "パスワード必要"
AuthUserFile /www/passwords/password.file
AuthGroupFile /www/passwords/group.file
.htpasswd ※idとパスワードは任意
id:password
↓WordPressでのベーシック認証の手順
特定のページのみベーシック認証をかける方法
②ファイル一覧出力拒否
index.php等デフォルトページがあるので使わないと思いますが、特定のディレクトリだけ一覧表示させたくないような場合は、
そのフォルダ内にだけ .htaccess ファイルを作成してアクセス制御を行うことができます。
※下位ディレクトリに 上位階層のディレクトリとは別の .htaccess があれば下位ディレクトリの .htaccess の設定が優先されます。
Options -Indexes
③デフォルトページを変更する
通常index.phpがデフォルトページですが、値を複数指定すると「index.php」→「index.html」→「main.html」の順で優先的に決まります。
DirectoryIndex index.php index.html main.html
③エラーページの指定
ユーザがエラーページを開いてしまった場合、デフォルトの404ページではなく独自に用意した404ページを表示させることができます。
ErrorDocument 401 /error/401.php
ErrorDocument 403 /error/403.php
ErrorDocument 404 /error/404.php
ErrorDocument 500 /error/500.php
⑤SSL リダイレクト
「http://」でとんでも「https://」に常にとぶようにする記述も.htaccessで行います。
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
⑥301 リダイレクト
あるURLに対するアクセスを別のURLへと転送するリダイレクト設定も.htaccessに定義できます。
301は永久的で302は一時的なリダイレクトを指します。
ページ単位でリダイレクトする場合
※「☆☆.html」から「△△.html」に転送する場合
RewriteEngine on
RewriteRule ^☆☆.html$ https://www.〇〇.com/△△.html [L,R=301]
ディレクトリ単位でリダイレクトする場合
※「/☆☆/」から「/△△/」に転送する場合
RewriteEngine on
RewriteRule ^☆☆(.*)$ /△△$1 [L,R=301]