.htaccess の設定方法

CPI サーバーで .htaccess をご利用いただくには、設定を適用させたいディレクトリ上に .htaccess ファイルを設置いただければ、即時設定が反映されます。

  • ただし、「html」配下のディレクトリが対象であることが必須です。

なお、.htaccess の記述内容によっては、ウェブコンテンツにアクセスできなくなったり、サーバーに負荷をかけるような状態に陥ってしまう場合があります。
そのため、作業につきましてはお客さまの自己責任の下、記述内容や設定内容に十分ご注意ください。

また、.htaccess の作成や設置に関しましては、お客さまのコンテンツにも依存することがあるため、技術サポートの対象外となっております。
ここに記載している内容は、一般的な設定内容となりますことご注意ください。

重要

.htaccess をご利用いただくお客さまへ

■シンボリックリンクをご利用の際は、以下の記述にてご利用ください。
  Options +SymLinksIfOwnerMatch
  RewriteEngine on

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

PHP を利用する

ウェブサーバーで PHP をご利用いただくにあたり、PHP のバージョンが標準のもので良いかどうかで利用方法が異なります。
こちらについての詳細は PHP のご利用方法をご参照ください。

php.ini の設定を下位ディレクトリ全体に反映する

php.ini の設定を下位ディレクトリ全体に反映

suPHP_ConfigPath /usr/home/********/example/
  • 「********」部分はウェブコントロールパネル ID に置き換えてください。
  • 「example」部分は反映させたいディレクトリ名に置き換えてください。
  • 記述いただく Path(上記例の場合は /example)配下には、反映させたい php.ini を設置してください。

PHP を .html や .htm などの拡張子ファイルとして実行する

PHP7.1 を .htmlや.htm などの拡張子ファイルとして実行する場合

AddHandler x-httpd-php71 .php .html .htm

ご契約サーバーでご利用いただける PHP のバージョンにつきましては、PHP バージョン一覧をご参照ください。

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

以下の 2 行の記述が必要となります。
なお、シンボリックリンクのリンク元ファイルとリンク先ファイルが、お客さま領域(同一のウェブコントロールパネル 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]
  • https の接続には 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 から始まるファイルについて、サーバーでの優先順位(読み込み順)は、以下の通りです。(上から優先順位の高い順)

  1. index.html
  2. index.shtml
  3. index.cgi
  4. index.hdml
  5. index.htm
  6. 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 http://example.jp/error/403.html

エラーコード 404:Not Found(ページが見つかりません)

ErrorDocument 404 http://example.jp/error/404.html

エラーコード 500:Internal Server Error(サーバ内部エラー)

ErrorDocument 500 http://example.jp/error/500.html
  • URL は表示させたいエラーページのアドレスに置き換えてください。
  • アクセス集中を表す 503 エラー(Service Temporarily Unavailable)につきましては、サーバー側で制御しているため、お客さまにて変更いただけません。ご了承ください。

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

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

例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)からの接続以外を許可する

order allow,deny
allow from all
deny from 192.0.2.1
  • IP アドレス(192.0.2.1)は、設定したい IP アドレスに置き換えてください。

SSIを「.shtml」以外の拡張子で使用する

.htaccess ファイルに以下の記述をしてください。
なお、拡張子が「.shtml」の場合は、.htaccess ファイルに記述する必要はありません。

<FilesMatch .html$>
  SetHandler server-parsed
</FilesMatch>

MIME タイプを定義する

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

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

.htm や .html ファイルを拡張子のままではなく php7.1 として処理

AddHandler x-httpd-php71 .htm .html
  • AddType による設定はご利用いただけません。
  • ご契約サーバーでご利用いただける PHP のバージョンにつきましては、 PHP のご利用についてをご参照ください。

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

pdf ファイルと jpeg ファイルを MIME タイプとして定義

AddType application/pdf .pdf
AddType image/jpeg .jpeg
  • 上記は設定例です。実際には、定義する必要がない場合や、定義してもサーバーの仕様上ご利用いただけない MIME タイプもあります。
    こちらにつきましては、CPI から設定ファイルの詳細などは案内していないため、お客さま側で実際にお試しいただくようお願いしております。

mod_deflate モジュールの利用方法

mod_deflate とは、サーバー側でコンテンツを圧縮してからクライアント側に送信する機能で、
転送量を軽減し表示速度の高速化が期待できます。

.htaccess ファイルに記述しなくても圧縮される MIME タイプ

以下の MIME タイプについては、ウェブサーバー側で自動的に mod_deflate により圧縮されます

  1. text/html
  2. text/plain
  3. text/css
  4. text/javascript
  5. application/x-javascript
  6. application/javascript
  7. application/ecmascript

上記以外の MIME タイプ

.htaccess ファイルに記述することでウェブサーバー側で mod_deflate により圧縮されます。

<書式>

<IfModule deflate_module>
AddOutputFilterByType DEFLATE (mod_deflate を有効にしたい MIME タイプ)
</IfModule>

<記述例 (MIME タイプ「text/xml」を圧縮させたい場合)>

<IfModule deflate_module>
AddOutputFilterByType DEFLATE text/xml
</IfModule>

特定の拡張子を圧縮させない方法

例として、拡張子が「.php」のファイルを圧縮させない方法を記載します。

<FilesMatch .php$>
SetEnv no-gzip
</FilesMatch>
更新日 / 2026年2月19日