.htaccessとはウェブサーバーの設定ファイルの1つです。一般的には、各ユーザーがディレクトリ(フォルダ)毎に設定をする時に使います。
.htaccessは、設置したディレクトリおよび、より下位のディレクトリに対して影響します。
例えばhttp://www.example.comのドキュメントルートの”blog/.htaccess”に設置したなら、
http://www.example.com/blog/ や http://www.example.com/blog/2021/ に影響しますが
http://www.example.com/news/ には影響しません。
.htaccessが使える条件
ユーザーが.htaccessを利用するためには、ウェブサーバーが対応しており、かつ、許可していなければなりません。
お使いの(または利用予定の)レンタルサーバーで.htaccessを利用できるかは、ヘルプを確認するか、サポートに問い合わせましょう。
特にWordPressを利用される場合は、一部の機能に.htaccessが利用が必須になりますので、ご注意ください。
逆に言えば、WordPress設置可能を謳うレンタルサーバーであれば、通常は.htaccessが利用できるはずです。
.htaccessの設置
.htaccessそれ自体はテキストが書かれたファイルです。ドキュメントルートもしくは設定したいディレクトリに、htmlファイルや画像ファイルと同じ様に設置します。
.htaccessでできること
他ドメインへのリダイレクト
例えば
https://www.example.com/ にアクセスがあった場合
https://www.example.jp/ に転送することができます。
https://www.example.com/ 側の .htaccess で、以下のように記載します。
Redirect permanent / https://www.example.jp/
常時HTTPSのリダイレクト
例えば
http://www.example.com/ にアクセスがあった場合
https://www.example.com/ に転送することができます。
RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
例えば
https://example.com/ にアクセスがあった場合
https://www.example.com/ に転送したり、
あるいは逆に
https://www.example.com/ にアクセスがあった場合
https://example.com/ に転送したりすることができます。
www.ありに統一
Options +SymLinksIfOwnerMatch
RewriteEngine on
RewriteCond %{HTTP_HOST} ^example\.com$
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]
www.なしに統一
Options +SymLinksIfOwnerMatch
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.example\.com$
RewriteRule ^(.*)$ https://example.com/$1 [R=301,L]
.cgiの実行を許可する
CGIと呼ばれるプログラムを利用するためには、.htaccessで実行を許可しなければならないことがあります。
Options +ExecCGI
AddHandler cgi-script cgi
IPアドレスによるアクセス制限
特定のIPアドレスからのアクセスのみ許可したり、あるいは逆に、特定のIPアドレスからのアクセスを拒否する、といった設定ができます。
IPアドレス 203.0.113.203 からのアクセスのみ許可する例
ウェブサーバーがApache 2.2以前の場合
Order deny,allow
Deny from all
Allow from 203.0.113.203
ウェブサーバーがApache 2.4以降の場合
Require all denied
Require ip 203.0.113.203
IPアドレス 203.0.113.203 からのアクセスを拒否する例
ウェブサーバーがApache 2.2以前の場合
Order allow,deny
allow from all
deny from 203.0.113.203
ウェブサーバーがApache 2.4以降の場合
Require all granted
Require not ip 203.0.113.203
パスワードによるアクセス制限(Basic認証)
.htaccessを利用し、ユーザー名とパスワードを入力しないとアクセスできないページを作成できます。
ですが、レンタルサーバーの管理画面などで、同様の機能を簡単に設置できる機能が用意されているところも多いので、ヘルプを確認するか、サポートに問い合わせましょう。