ここでは、サーバーをご利用いただく際のヒントとして、よく利用される .htaccess の一般的な内容の一部のみを掲載しております。
他の運用方法もありますが、ウェブ構築関連の書籍やサイト等でご確認の上、設定してみてください。
.htaccess はウェブサーバーに対する制御を行なうためのファイルです。
編集はテキストエディタ等で行っていただき、ファイル名を「.htaccess」(拡張子なし)で「html」以下の設定を適用させたいディレクトリにアップロードしていただくことで反映されます。
記述内容によっては、アクセスできなくなったり、サーバーに負荷がかかってしまう場合もございますので、作業時には、記述内容や設定内容はお客様の自己責任の下、設定内容に十分ご注意ください。
ここに記載している内容は、一般的な設定内容となり、お客様のコンテンツにも依存することがございますため、技術サポート対象外となっております。
.htaccess をご利用のお客様へ
■ウェブサーバー「aa***.secure.ne.jp」をご利用の場合は、以下のどちらの記述でも動作します。
【パターン1】
Options +FollowSymLinks
RewriteEngine On
【パターン2】
Options +SymLinksIfOwnerMatch
RewriteEngine on
■上記以外のウェブサーバーをご利用の場合は、以下の記述にてご利用ください。
Options +SymLinksIfOwnerMatch
RewriteEngine on
.htaccess の各行の途中に「#」でコメントアウトするとエラーになります。
コメントアウトされる場合は、行を分けて記述してください。
PHP を利用する
サーバーで PHP をご利用いただく場合は、設定を有効化する必要があります。
記述方法は、 PHP のご利用についてをご参照ください。
php.ini の設定を下位ディレクトリ全体に反映する
-----------------------------------------------------------------------------------
# php.ini の設定を下位ディレクトリ全体に反映
suPHP_ConfigPath /usr/home/********/example/
-----------------------------------------------------------------------------------
※「********」部分は契約ユーザー ID に置き換えてください。
※「example」部分は反映させたいディレクトリ名に置き換えてください。
PHPを.htmlや .htm などの拡張子ファイルとして実行する
-----------------------------------------------------------------------------------
# PHP5.2.8 を .htmlや.htm などの拡張子ファイルとして実行する場合
AddHandler x-httpd-php528 .php .html .htm
-----------------------------------------------------------------------------------
ご契約サーバーでご利用いただける PHP のバージョンにつきましては、 PHP のご利用についてをご参照ください。
シンボリックリンクを有効化する場合
mod_rewrite を利用する場合
以下の 2 行の記述が必要となります。
なお、シンボリックリンクのリンク元ファイルとリンク先ファイルが、お客様領域(同一ユーザー ID)内にあることが条件となります。
※SSH をご利用いただけませんので、任意のファイルでシンボリックリンクの設定を行なう事は出来かねます。ご利用の CMS などで必要な場合にご利用ください。
-----------------------------------------------------------------------------------
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 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)からの接続のみを許可する
-----------------------------------------------------------------------------------
# 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 アドレスに置き換えてください。
SSIを「.shtml」以外の拡張子で使用する
.htaccessファイルに以下の記述をしてください。
なお、拡張子が「.shtml」の場合は、.htaccessファイルに記述する必要はありません。
----------------------------------------
<FilesMatch \.html$>
SetHandler server-parsed
</FilesMatch>
----------------------------------------
MIME タイプを定義する
サーバーにアップロードしたファイルの扱い方を定義します。
例 1:PHP 以外の拡張子を PHP として処理する
-----------------------------------------------------------------------------------
# .htm や .html ファイルを拡張子のままではなく、 php5.5.27 として処理
AddHandler x-httpd-php5527 .htm .html
-----------------------------------------------------------------------------------
※AddType による設定はご利用いただけません。
※ご契約サーバーでご利用いただける PHP のバージョンにつきましては、 PHP のご利用についてをご参照ください。
例 2:サーバーでデフォルト MIME タイプとして定義されていない MIME タイプを追加する
-----------------------------------------------------------------------------------
# pdf ファイルと jpeg ファイルを MIME タイプとして定義
AddType application/pdf .pdf
AddType image/jpeg .jpeg
-----------------------------------------------------------------------------------
※上記は設定例です。
実際には定義する必要がない場合や、定義してもサーバーの仕様上、ご利用いただけない MIME タイプもありますが、設定ファイルの詳細は案内していないため、設定の上、お試しください。
mod_deflateモジュールの利用方法
mod_deflateとは、サーバー側でコンテンツを圧縮してからクライアント側に送信する機能で、
転送量を軽減し表示速度の高速化が期待できます。
..htaccess ファイルに記述しなくても圧縮される MIME タイプ
以下の MIME タイプについては、ウェブサーバー側で自動的に mod_deflate により圧縮されます
--------------------------------------------------------------------------
text/html
text/plain
text/css
text/javascript
application/x-javascript
application/javascript
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>
--------------------------------------------------------------------------
更新日:2018年03月29日
