さまざまな .htaccess の使い方(Apache プラン)
Apache プランでは .htaccess を使用することで、公開サイトのさまざまな運用ポリシーに対して柔軟に対応できます。(nginx プランでは .htaccess をご利用になれません)
IP アドレスなどでのアクセス制限や Basic 認証の設定、URL リダイレクトについては以下をご参照ください。
そのほかにも、以下のような対応をおこなうことも可能です。(各項目の設定例は目的に合わせて値を適宜変更してください)
- レスポンスヘッダーに Strict Transport Security(HSTS)を追加する
-
Header set Strict-Transport-Security "max-age=31536000; includeSubDomains"
- レスポンスヘッダーに Content Security Policy(CSP)を追加する
-
Header set Content-Security-Policy "default-src 'self';"
- レスポンスヘッダーに Cross-Origin Resource Sharing(CORS)を追加する
-
Header set Access-Control-Allow-Origin "https://www.example.com"
- レスポンスヘッダーに X-Frame-Options を追加する
-
Header append X-Frame-Options SAMEORIGIN
- レスポンスヘッダーに X-XSS-Protection を追加する
-
Header set X-XSS-Protection "1; mode=block"
- レスポンスヘッダーに X-Content-Type-Options を追加する
-
Header set X-Content-Type-Options nosniff
- 特定の IP アドレスのみサイトアクセスを許可し、許可したアクセスに対して Basic 認証をおこなう
-
Require all denied <RequireAll> <RequireAny> Require ip xx.xx.xx.xx </RequireAny> AuthUserFile /data/file/static/.htpasswd AuthName "Please enter your ID and password" AuthType Basic require valid-user </RequireAll> <Files ~ "^\.ht"> Require all denied </Files>
※Require ip に指定する IP アドレスは実際に許可するものを指定してください。
※.htpasswd ファイルを /data/file/static ではない場所に配置した場合は、AuthUserFile のパスも変更してください。 - 初期ドメインや IP アドレスでのサイトアクセスを禁止する
-
Movable Type クラウド版をご契約いただくと、xxxx.movabletype.biz といった初期ドメインが割り当てられます。この初期ドメインは管理画面へのアクセスだけでなく、サイトを公開することも可能です。独自ドメインでサイトを公開する場合には不要ですが、運用ポリシーによっては、管理画面と併用する初期ドメインに対して、公開サイトとしてのアクセスそのものを拒否したいといったケースも考えられます。
その場合は /data/file/static ディレクトリ直下に .htaccess を設置し、以下のように記述を加えることでアクセスを拒否することができます。(403 エラーページが表示されます)
RewriteEngine on RewriteCond %{HTTP_HOST} (xxxx.movabletype.biz|xxx.xxx.xxx.xxx) RewriteRule ^ - [F]
※(xxxx.movabletype.biz|xxx.xxx.xxx.xxx) の部分にはご利用の Movable Type クラウド版の初期ドメインと IP アドレスを記述します。
アクセス拒否ではなく、ほかのサイトにリダイレクトさせることも可能です。以下は初期ドメインへのアクセスを https://www.sixapart.jp/ にリダイレクトする設定例となります。
RewriteEngine on RewriteCond %{HTTP_HOST} (xxxx.movabletype.biz|xxx.xxx.xxx.xxx) RewriteRule ^(.*)$ https://www.sixapart.jp/$1 [R=301,L]
※いずれも公開サイトでのみ有効です。管理画面へのアクセスに影響はありません。
- 拡張子なしの URL で「.html」ファイルへのアクセスを可能にする
-
RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}.html -f RewriteRule ^(.*)$ $1.html