公開サイトのアクセス制限(Apache プラン)
Apache プランでは、.htaccess ファイルを配置することで 公開サイトのアクセス制限をおこなうことができます。(nginx プランのような管理画面上のメニューはなく、管理画面から公開サイトのアクセス制限をおこなうことはできません)
アクセス制限を設定する
アクセス制限に関する設定を記述した .htaccess ファイルを作成し、アクセス制限を掛けたいディレクトリに FTPS でアップロードします。設定例は次の通りです。
- 特定の IP アドレスやホストのみを許可(ホワイトリスト形式)
-
Require ip にはアクセスを許可する IP アドレスを、Require host にはアクセスを許可するホストを 1 行ずつ指定します。
Require all denied Require ip xxx.xxx.xxx.xxx Require host example.com
- 特定の IP アドレスやホストのみを拒否(ブラックリスト形式)
-
Require not ip にはアクセスを拒否する IP アドレスを、Require not host にはアクセスを拒否するホストを 1 行ずつ指定します。
<RequireAll> Require all granted Require not ip xxx.xxx.xxx.xxx Require not host example.com </RequireAll>
上記の内容は、以下のように書くこともできます。(どちらの書き方でも挙動はまったく同じです)
<RequireAll> Require all granted <RequireNone> Require ip xxx.xxx.xxx.xxx Require host example.com </RequireNone> </RequireAll>
- 条件付きアクセス制限
-
アクセス制限には、IP アドレスだけではなくユーザーエージェントを利用することもできます。たとえば、Internet Explorer だけアクセスを許可する場合には次のように記述します。
SetEnvIf User-Agent "Windows" windows SetEnvIf User-Agent "Mac.*OS" macos SetEnvIf User-Agent "Chrome" chrome SetEnvIfNoCase User-Agent "Safari" safari SetEnvIfNoCase User-Agent "(MSIE|Trident)" ie Require all denied Require env ie
上記の内容は、以下のように書くこともできます。(どちらの書き方でも挙動はまったく同じです)
Require all denied Require expr %{HTTP_USER_AGENT} =~ /(MSIE|Trident)/
※S4ia / S4ia7 以上のプランをご利用の場合は、static ディレクトリ直下にドメイン名をもとにしたサブディレクトリが作成されています。リダイレクト設定を掛けるディレクトリがどこにあるかは、Movable Type クラウド版の管理画面から親サイト(ウェブサイト)のサイトパスを確認してください。