.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 日