レンタルサーバ

.htaccessによるアクセス制御をしたい

対象プラン

さくらのレンタルサーバ ライト スタンダード プレミアム ビジネス ビジネスプロ マネージド

.htaccessを配置することで、ウェブアクセスに関わる設定を行う事ができます。

前提条件

  • 充分な動作確認の元、運用を開始してください。
  • 本ページに記載の内容は、あくまで設定方法の一例です。
    前後の記述や記述方法によっては適用できない場合があります。
    ウェブコンテンツの構築方法によっては、想定外の動作をする場合があります。
    お客様で修正・解決いただけますようお願いします。
  • Optionsの設定は可能ですが、AllおよびFollowSymlinksは指定できません。
  • このページでご案内しているのはあくまで一例です。
    詳しい設定方法や機能についてはWebサーバー(Apache)の専門書籍をご確認ください。

注意事項

 

さくらのレンタルサーバで利用不可、非推奨としている記述例

さくらのレンタルサーバでは、一部.htaccessの記述についてサーバーのシステム設計上動作を保証できない場合があります。
よくある例として以下を紹介いたしますので、これらに該当する場合は速やかに記述の修正、運用変更のご検討をお願いします。

X_SAKURA_FORWARDED_FOR の環境変数の利用

httpsへのリダイレクトなどを目的として、非公式に展開されていた記述です。
現在のさくらのレンタルサーバではドメインリダイレクト機能を提供しており、本記述は不要かと思われます。
また、OSのバージョンが13.0以降はコンテンツ表示不具合につながる事を確認しているので記述を削除してください。

なお本件は2018年より非推奨として注意喚起のご案内を行っており、旧バージョン(OS11.2)をご利用の方におきましても非推奨の記述となりますので、併せてご承知おきください。

レンタルサーバーの仕様変更について(2018年3月)

htmlファイル内でphpを実行させる挙動

/www配下に「php.cgi」といったファイルを設置し、.htaccessの記述と組み合わせて本挙動を実現させている場合、2022年~2023年実施のOSアップデートメンテナンス以降は想定の動作を確約できません。
旧バージョン(OS11.2)のOS環境であってもサポート対象外の動作となるため、運用の見直しをお願いします。

OSバージョンにより挙動が異なることがありますが、いずれのバージョンにおいても非公式且つ動作保証外の記述となります。

.htaccessファイルの作成手順

さくらのレンタルサーバでは、手動で.htaccessファイルの作成、アップロードも可能ですが、ファイルマネージャーをご利用いただくと、より簡単に設定が可能です

1サーバーコントロールパネル」にログインします。

ログイン方法は下記を参照ください。

サーバーコントロールパネルにログインしたい

注意事項

「メールアドレス / パスワード」でログインした場合は、メール設定しかコントロールパネルに表示されませんので、必ず「初期ドメインまたは追加されたドメイン / パスワード」でログインをお願いいたします。

コントロールパネルにドメインなどの設定項目が表示されない

2ファイルマネージャーログイン

『ファイルマネージャー 』をクリックします。

3ファイルマネージャーの画面が表示されます。

4ファイルマネージャーの画面左上から「表示アドレスへの操作」> [ファイル作成]をクリックします。

5設定例に従って、.htaccessの設定を書き込みます。

6「OK」をクリックします。

7動作確認

ウェブページを閲覧し、エラーが出ていないか、設定したとおりに接続が制御できているか確認してください。

mod_rewriteを使ったアクセス制御

さくらのレンタルサーバではmod_rewriteをご利用いただけます。
この機能を使用することで、指定したURLへ来たアクセスを他のURLへ転送することができます。

本ページに記載のサンプルはexample.sakura.ne.jpという初期ドメイン名にexample.jpというドメインを追加し、 以下のようなディレクトリ構成で運用することを前提としています。

  • mod_rewriteはWebサーバーApacheの拡張機能であるため、設定は.htaccessに記述します。
  • mod_rewriteを使用する際、「RewriteEngine On」という構文を先に書き、宣言しておきます。
    なお、この宣言は対象とする.htaccess内に一度のみで構いません。

URL書き換えリダイレクトを行いたい

www.example.sakura.ne.jp/dir1/ へアクセスすると、
www.example.sakura.ne.jp/dir2/ にリダイレクト(転送)されます。

.htaccessの設定例

RewriteEngine On
RewriteBase /
RewriteRule dir1/(.*) dir2/$1 [R,L]
  • 上記の場合、.htaccessはdir1配下に設置する必要があります。
    [R]をつけるとブラウザのURLの表示も書きかわります。
  • アクセス⇒http://example.sakura.ne.jp/dir1/
    ブラウザのURLの表⇒http://example.sakura.ne.jp/dir2/
  • [L]をつけると判定をその場で終了します。
    このページに記載の内容であれば付与しなくても動作に支障はありませんが、付与されることをお勧めします。

初期ドメインにアクセスがあった場合独自ドメインへリダイレクトさせたい

さくらのレンタルサーバの初期ドメインを表示させたくない場合に有効です

.htaccessの設定例

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^(www\.)?[^.]+\.sakura\.ne\.jp$ [NC]
RewriteRule .* http://www.example.jp%{REQUEST_URI} [R=301,L]
  • .htaccessはリダイレクト元のドキュメントルートに設置してください。
  • [NC] をつけると大文字・小文字を区別しなくなります。
  • RewriteCond行に指定する文字にドット . が含まれる場合、直前に \ 記号を挿入してください。
  • [^.] は . 以外の文字
    [^.]+ は . 以外の文字が一文字以上
    を表します。
  • [R=301] 301はHTTPステータスコードを示し、恒久的な転送を意味します。
    この場合は検索エンジン等、機械的なアクセスに対する効果を想定しています。
  • この方法はドキュメントルート(/home/初期ドメイン名/www) 直下に設置した場合のみ機能します。
    初期ドメインへのアクセスを禁じたい場合、.htaccessによるアクセス制御をお試しください。

訪問者を別のURLへ転送したい

新しいサーバーやドメインへ引越ししたとき、古いURLでアクセスした訪問者を、シームレスに新しいサイトへ誘導することができます。

.htaccessの設定例

Redirect / "http://www.example.co.jp/"

.htaccessの設定例

RewriteEngine on 
RewriteBase / 
RewriteRule example.html "http://www.example.jp/.html" [R=301,L]
  • .htaccessはリダイレクト元のドキュメントルートに設置してください。
  • 具体的な記述方法等につきましては、関連書籍・ドキュメントをご確認ください。

暗号化(SSL)を有効としている場合、暗号化しているページへ誘導したい

SSL証明書の設定を行ってサイトにhttpsでアクセスできるようになったら、http でのアクセスをhttpsへ転送することが望ましい設定です。
この設定を行うには共有SSL、独自SSLのどちらかの機能を有効にしている必要があります。

SSL証明書の概要を知りたい

.htaccessの設定例

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
  • .htaccessはリダイレクト元のドキュメントルートに設置してください。

WordPressで作成しているページを暗号化する場合は以下を参照ください。
WordPressのサイトをSSL化したい

常時SSL化したWordPressのドメイン名を統一させたい

WordPressで作成しているページを暗号化する場合は以下を参照ください。

WordPressのサイトをSSL化したい

.htaccessの設定例

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(example\.jp) [NC]
RewriteRule ^(.*) https://www.example.jp/$1 [R=301,L]
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
  • 上記は、ドメインがexample.jpとした場合となります。
    設定時は、ご利用のドメインへの書き換えをしてください。
  • .htaccessはリダイレクト元のドキュメントルートに設置してください。

WordPressを常時SSL化、かつwww.無しドメインでのアクセスに統一したい

.htaccessの設定例

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\.example\.jp) [NC]
RewriteRule ^(.*) https://example.jp/$1 [R=301,L]
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
  • 上記は、ドメインがexample.jpとした場合となります。
    設定時は、ご利用のドメインへの書き換えをしてください。

アクセス制限

.htaccessを使って、以下のアクセス制限をかける事ができます。

  • ディレクトリにパスワード制限をかける(Basic認証)
  • 特定のドメイン名やIPアドレスからの閲覧を【拒否】
  • 特定のドメイン名やIPアドレスからのみ閲覧を【許可】

さくらのレンタルサーバでは、.htaccessファイルを作成しなくても、これらの制限もファイルマネージャーから簡単に設定が可能です。
ファイルマネージャーでアクセス制限をしたい

その他の設定

.htaccessを使って、Webサーバーの設定を一部変更する事ができます。

インデックスファイル名を変更したい

さくらのレンタルサーバでは、ファイル名までのURL指定がない場合、対象ディレクトリの中にあるファイルを走査し、インデックスファイルを表示します。
(DirectoryIndex機能) 初期状態では以下のファイルがインデックスファイルとして登録されており、これらのファイル登録を独自のものにすることができます。

  • index.html
  • index.htm
  • index.shtml
  • index.cgi
  • index.php
  • index.hdml

さくらのレンタルサーバでは、.htaccessファイルを作成しなくても、ファイルマネージャーから簡単に設定が可能です。
インデックスファイルの変更

「ファイルの一覧(Index of)」を表示させたい

さくらのレンタルサーバでは、ファイル名までのURL指定がなくインデックスファイル( index.html など )が無い場合、『 Forbidden 』が表示されます。
簡単にファイルのダウンロードができるようにしたい等の場合、ファイルの一覧(Index of)を表示させることができます。

.htaccessの設定例

Options Indexes

.htaccessを配置することで、ウェブアクセスに関わる設定を行う事ができます。

前提条件

  • 充分な動作確認の元、運用を開始してください。
  • 本ページに記載の内容は、あくまで設定方法の一例です。
    前後の記述や記述方法によっては適用できない場合があります。
    ウェブコンテンツの構築方法によっては、想定外の動作をする場合があります。
    お客様で修正・解決いただけますようお願いします。
  • Optionsの設定は可能ですが、AllおよびFollowSymlinksは指定できません。
  • このページでご案内しているのはあくまで一例です。
    詳しい設定方法や機能についてはWebサーバー(Apache)の専門書籍をご確認ください。

注意事項

 

さくらのレンタルサーバで利用不可、非推奨としている記述例

さくらのレンタルサーバでは、一部.htaccessの記述についてサーバーのシステム設計上動作を保証できない場合があります。
よくある例として以下を紹介いたしますので、これらに該当する場合は速やかに記述の修正、運用変更のご検討をお願いします。

X_SAKURA_FORWARDED_FOR の環境変数の利用

httpsへのリダイレクトなどを目的として、非公式に展開されていた記述です。
現在のさくらのレンタルサーバではドメインリダイレクト機能を提供しており、本記述は不要かと思われます。
また、OSのバージョンが13.0以降はコンテンツ表示不具合につながる事を確認しているので記述を削除してください。

なお本件は2018年より非推奨として注意喚起のご案内を行っており、旧バージョン(OS11.2)をご利用の方におきましても非推奨の記述となりますので、併せてご承知おきください。

レンタルサーバーの仕様変更について(2018年3月)

htmlファイル内でphpを実行させる挙動

/www配下に「php.cgi」といったファイルを設置し、.htaccessの記述と組み合わせて本挙動を実現させている場合、2022年~2023年実施のOSアップデートメンテナンス以降は想定の動作を確約できません。
旧バージョン(OS11.2)のOS環境であってもサポート対象外の動作となるため、運用の見直しをお願いします。

OSバージョンにより挙動が異なることがありますが、いずれのバージョンにおいても非公式且つ動作保証外の記述となります。

.htaccessファイルの作成手順

さくらのレンタルサーバでは、手動で.htaccessファイルの作成、アップロードも可能ですが、ファイルマネージャーをご利用いただくと、より簡単に設定が可能です

1サーバーコントロールパネル」にログインします。

ログイン方法は下記を参照ください。

サーバーコントロールパネルにログインしたい

注意事項

「メールアドレス / パスワード」でログインした場合は、メール設定しかコントロールパネルに表示されませんので、必ず「初期ドメインまたは追加されたドメイン / パスワード」でログインをお願いいたします。

コントロールパネルにドメインなどの設定項目が表示されない

2ファイルマネージャーログイン

『ファイルマネージャー 』をクリックします。

3ファイルマネージャーの画面が表示されます。

4ファイルマネージャーの画面左上から「表示アドレスへの操作」> [ファイル作成]をクリックします。

5設定例に従って、.htaccessの設定を書き込みます。

6「OK」をクリックします。

7動作確認

ウェブページを閲覧し、エラーが出ていないか、設定したとおりに接続が制御できているか確認してください。

mod_rewriteを使ったアクセス制御

さくらのレンタルサーバではmod_rewriteをご利用いただけます。
この機能を使用することで、指定したURLへ来たアクセスを他のURLへ転送することができます。

本ページに記載のサンプルはexample.sakura.ne.jpという初期ドメイン名にexample.jpというドメインを追加し、 以下のようなディレクトリ構成で運用することを前提としています。

  • mod_rewriteはWebサーバーApacheの拡張機能であるため、設定は.htaccessに記述します。
  • mod_rewriteを使用する際、「RewriteEngine On」という構文を先に書き、宣言しておきます。
    なお、この宣言は対象とする.htaccess内に一度のみで構いません。

URL書き換えリダイレクトを行いたい

www.example.sakura.ne.jp/dir1/ へアクセスすると、
www.example.sakura.ne.jp/dir2/ にリダイレクト(転送)されます。

.htaccessの設定例

RewriteEngine On
RewriteBase /
RewriteRule dir1/(.*) dir2/$1 [R,L]
  • 上記の場合、.htaccessはdir1配下に設置する必要があります。
    [R]をつけるとブラウザのURLの表示も書きかわります。
  • アクセス⇒http://example.sakura.ne.jp/dir1/
    ブラウザのURLの表⇒http://example.sakura.ne.jp/dir2/
  • [L]をつけると判定をその場で終了します。
    このページに記載の内容であれば付与しなくても動作に支障はありませんが、付与されることをお勧めします。

初期ドメインにアクセスがあった場合独自ドメインへリダイレクトさせたい

さくらのレンタルサーバの初期ドメインを表示させたくない場合に有効です

.htaccessの設定例

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^(www\.)?[^.]+\.sakura\.ne\.jp$ [NC]
RewriteRule .* http://www.example.jp%{REQUEST_URI} [R=301,L]
  • .htaccessはリダイレクト元のドキュメントルートに設置してください。
  • [NC] をつけると大文字・小文字を区別しなくなります。
  • RewriteCond行に指定する文字にドット . が含まれる場合、直前に \ 記号を挿入してください。
  • [^.] は . 以外の文字
    [^.]+ は . 以外の文字が一文字以上
    を表します。
  • [R=301] 301はHTTPステータスコードを示し、恒久的な転送を意味します。
    この場合は検索エンジン等、機械的なアクセスに対する効果を想定しています。
  • この方法はドキュメントルート(/home/初期ドメイン名/www) 直下に設置した場合のみ機能します。
    初期ドメインへのアクセスを禁じたい場合、.htaccessによるアクセス制御をお試しください。

訪問者を別のURLへ転送したい

新しいサーバーやドメインへ引越ししたとき、古いURLでアクセスした訪問者を、シームレスに新しいサイトへ誘導することができます。

.htaccessの設定例

Redirect / "http://www.example.co.jp/"

.htaccessの設定例

RewriteEngine on 
RewriteBase / 
RewriteRule example.html "http://www.example.jp/.html" [R=301,L]
  • .htaccessはリダイレクト元のドキュメントルートに設置してください。
  • 具体的な記述方法等につきましては、関連書籍・ドキュメントをご確認ください。

暗号化(SSL)を有効としている場合、暗号化しているページへ誘導したい

SSL証明書の設定を行ってサイトにhttpsでアクセスできるようになったら、http でのアクセスをhttpsへ転送することが望ましい設定です。
この設定を行うには共有SSL、独自SSLのどちらかの機能を有効にしている必要があります。

SSL証明書の概要を知りたい

.htaccessの設定例

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
  • .htaccessはリダイレクト元のドキュメントルートに設置してください。

WordPressで作成しているページを暗号化する場合は以下を参照ください。
WordPressのサイトをSSL化したい

常時SSL化したWordPressのドメイン名を統一させたい

WordPressで作成しているページを暗号化する場合は以下を参照ください。

WordPressのサイトをSSL化したい

.htaccessの設定例

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(example\.jp) [NC]
RewriteRule ^(.*) https://www.example.jp/$1 [R=301,L]
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
  • 上記は、ドメインがexample.jpとした場合となります。
    設定時は、ご利用のドメインへの書き換えをしてください。
  • .htaccessはリダイレクト元のドキュメントルートに設置してください。

WordPressを常時SSL化、かつwww.無しドメインでのアクセスに統一したい

.htaccessの設定例

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\.example\.jp) [NC]
RewriteRule ^(.*) https://example.jp/$1 [R=301,L]
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
  • 上記は、ドメインがexample.jpとした場合となります。
    設定時は、ご利用のドメインへの書き換えをしてください。

アクセス制限

.htaccessを使って、以下のアクセス制限をかける事ができます。

  • ディレクトリにパスワード制限をかける(Basic認証)
  • 特定のドメイン名やIPアドレスからの閲覧を【拒否】
  • 特定のドメイン名やIPアドレスからのみ閲覧を【許可】

さくらのレンタルサーバでは、.htaccessファイルを作成しなくても、これらの制限もファイルマネージャーから簡単に設定が可能です。
ファイルマネージャーでアクセス制限をしたい

その他の設定

.htaccessを使って、Webサーバーの設定を一部変更する事ができます。

インデックスファイル名を変更したい

さくらのレンタルサーバでは、ファイル名までのURL指定がない場合、対象ディレクトリの中にあるファイルを走査し、インデックスファイルを表示します。
(DirectoryIndex機能) 初期状態では以下のファイルがインデックスファイルとして登録されており、これらのファイル登録を独自のものにすることができます。

  • index.html
  • index.htm
  • index.shtml
  • index.cgi
  • index.php
  • index.hdml

さくらのレンタルサーバでは、.htaccessファイルを作成しなくても、ファイルマネージャーから簡単に設定が可能です。
インデックスファイルの変更

「ファイルの一覧(Index of)」を表示させたい

さくらのレンタルサーバでは、ファイル名までのURL指定がなくインデックスファイル( index.html など )が無い場合、『 Forbidden 』が表示されます。
簡単にファイルのダウンロードができるようにしたい等の場合、ファイルの一覧(Index of)を表示させることができます。

.htaccessの設定例

Options Indexes

お問い合わせ

上記をご確認いただいても問題が
解決しなかった場合、
下記リンク先よりお問い合わせください。

お問い合わせはこちら