メインコンテンツに移動

操作マニュアル

operation manual

.htaccess の設定方法

ここでは、サーバーをご利用いただく際のヒントとして、よく利用される .htaccess の一般的な内容の一部のみを掲載しております。

他の運用方法もありますが、ウェブ構築関連の書籍やサイト等でご確認のうえ、設定してみてください。

.htaccess はウェブサーバーに対する制御を行うためのファイルです。
編集はテキストエディタ等で行っていただき、ファイル名を「.htaccess」(拡張子なし)で「html」以下の設定を適用させたいディレクトリにアップロードしていただくことで反映されます。
記述内容によっては、アクセスできなくなったり、サーバーに負荷がかかってしまう場合もございますので、作業時には記述内容や設定内容はお客様の自己責任の下、設定内容に十分ご注意ください。

ここに記載している内容は、一般的な設定内容となり、お客様のコンテンツにも依存することがございますため、技術サポート対象外となっております。

.htaccess の各行の途中に「#」でコメントアウトするとエラーになります。
コメントアウトされる場合は、行を分けて記述してください。

シンボリックリンクを有効化する場合
mod_rewrite を利用する場合

.htaccess ファイルに以下の記述をしますと、ご利用いただけます。
なお、シンボリックリンクのリンク元ファイルとリンク先ファイルが、お客様領域(同一ユーザー ID)内にあることが条件となります。

Options +SymLinksIfOwnerMatch
RewriteEngine On

※上記のように必ず「+」記号をつけてください。

リダイレクト(転送)設定する

サーバーでリダイレクトを有効化するには、以下の 2 行の記述が必要となります。

Options +SymLinksIfOwnerMatch
RewriteEngine On

※上記のように必ず「+」記号をつけてください。

例1:www なしで接続があった場合に www ありの URL にリダイレクトする 

Options +SymLinksIfOwnerMatch 
RewriteEngine On 
RewriteCond %{HTTP_HOST} ^example\.jp 
RewriteRule (.*) http://www.example.jp/$1 [R=301,L] 

※URL に続く数字は、 301 リダイレクト:恒久的なリダイレクト、 302 リダイレクト:一時的なリダイレクトという意味です。運用に応じてステータスコードを変更してください。

例 2:ホームページに対して、 http(通常の 80 番ポート)で接続があった場合に、強制的に https(SSL の 443 番ポート)での接続に変更する

Options +SymLinksIfOwnerMatch
RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.*)?$ https://www.example.jp/$1 [L,R]

※契約プランによっては、独自 SSL をご契約いただいておりませんと、 SSL サーバー証明書はご利用いただけません。
 上記例は、[www.example.jp]というコモンネームで SSL サーバー証明書を取得していることを前提とした説明です。

例 3:特定のディレクトリ(例:aaa)に対するアクセスを、別のディレクトリ(例:bbb)にリダイレクトする

Options +SymLinksIfOwnerMatch
RewriteEngine On
Redirect permanent /aaa/ http://www.example.jp/bbb/

例 4:転送元に対するアクセスを、すべて転送先のトップページにリダイレクトする

Options +SymLinksIfOwnerMatch
RewriteEngine On
RedirectMatch 301 .* http://www.example.jp/

例 5:携帯電話の振り分け設定

Options +SymLinksIfOwnerMatch
RewriteEngine On

# docomo
RewriteCond %{HTTP_USER_AGENT} DoCoMo
RewriteRule ^$ http://example.jp/i/index.html [R]

# SoftBank
RewriteCond %{HTTP_USER_AGENT} SoftBank
RewriteRule ^$ http://example.jp/s/index.html [R]

# au
RewriteCond %{HTTP_USER_AGENT} UP.Browser
RewriteRule ^$ http://example.jp/au/index.html [R]

# Android
RewriteCond %{HTTP_USER_AGENT} Android
RewriteRule ^$ http://example.jp/android/index.html [R]

# iPhone
RewriteCond %{HTTP_USER_AGENT} iPhone
RewriteRule ^$ http://example.jp/iphone/index.html [R]

# iPad
RewriteCond %{HTTP_USER_AGENT} iPad
RewriteRule ^$ http://example.jp/ipad/index.html [R]

※.htaccess では、各モバイル機器ごとの振り分けルールのみ設定します。
 振り分け先のコンテンツについては、別途ご用意ください。

表示順序の変更

index から始まるファイルについて、サーバーでの優先順位(読み込み順)は、以下の通りです。(上から優先順位の高い順)

①index.html
②index.shtml
③index.cgi
④index.hdml
⑤index.htm
⑥index.php

例:index ファイルの読み込み順を変更する

※DirectoryIndex の後に、表示させる順で記述してください。
 以下の設定例の場合、 index.html よりも先に index.cgi を探して表示します。

# index ファイルの読み込み順の変更
DirectoryIndex index.cgi index.html

エラーページの表示設定

エラーページは独自のページを用意することが可能です。

例:独自のエラーページを作成して、エラー時に表示する

# エラーコード401:Authorization Required(認証失敗) 
ErrorDocument 401 /error/401.html

※ローカル URL(=自サイト内の絶対パスで表現されるもの)である必要があります。

または

ErrorDocument 401 '<html><head><meta http-equiv="Refresh" content="0;url=http://example.jp/error/401.html"></head></html>'

# エラーコード403:Forbidden(閲覧権限が無い)
ErrorDocument 403 /error/403.html

# エラーコード404:Not Found(ページが見つかりません)
ErrorDocument 404 /error/404.html

# エラーコード500:Internal Server Error(サーバ内部エラー)
ErrorDocument 500 /error/500.html

※URL は表示させたいエラーページのアドレスに置き換えてください。
※上記の例は、エラーページのファイルをドキュメントルート(html)直下に「error」という名前のディレクトリ配下に置いている場合です。
※.htaccess ファイルは、ドキュメントルート(html)直下に置いてください。
※アクセス集中を表す 503 エラー(Service Temporarily Unavailable)につきましては、サーバー側で制御しているため、お客様にて変更いただけません。ご了承ください。

アクセスを制御(拒否/許可)する

HP へのアクセスを制御する場合は、1 行目に優先順位を指定する必要があります。
通常、以下のように設定します。
 一部のアクセス元のみを拒否する場合 → 許可を優先
 一部のアクセス元のみを許可する場合 → 拒否を優先

例 1:IP アドレス(192.0.2.1)からの接続のみを許可する

# IP アドレス(192.0.2.1)からの接続のみを許可する場合
order deny,allow
deny from all
allow from 192.0.2.1

※IP アドレス(192.0.2.1)は、設定したい IP アドレスに置き換えてください。

例 2:IP アドレス(192.0.2.1)からの接続以外を許可する

# IP アドレス(192.0.2.1)からの接続以外を許可する場合
order allow,deny
allow from all
deny from 192.0.2.1

※IP アドレス(192.0.2.1)は、設定したい IP アドレスに置き換えてください。

MIME タイプを定義する

サーバーにアップロードしたファイルの扱い方を定義します。

例 1:PHP 以外の拡張子を PHP として処理する

# .htm や .html ファイルを拡張子のままではなく、 php として処理
AddHandler x-httpd-php528 .htm .html

※AddType による設定はご利用いただけません。

例 2:サーバーでデフォルト MIME タイプとして定義されていない MIME タイプを追加する

# pdf ファイルと jpeg ファイルをMIMEタイプとして定義
AddType application/pdf .pdf
AddType image/jpeg .jpeg

※上記は設定例です。
 実際には定義する必要がない場合や、定義してもサーバーの仕様上、ご利用いただけない MIME タイプもありますが、設定ファイルの詳細は案内していないため、設定のうえお試しください。

SSI を「.shtml」の拡張子ではなく、「.html」で利用する方法

.htaccess ファイルに以下の記述をしますと、ご利用いただけます。

AddOutputFilter INCLUDES .html

更新日 / 2020 年 9 月 29 日

【関連リンク】

CHM-2Z

お問い合わせ

サポートセンターにお問い合わせいただける窓口をご案内します。

お問い合わせ窓口