レンタルサーバーならではの自由度。お好みの設定にカスタム
| ARS201 | ARS202 | ARS203 | ARS204 | ARS205 | NSO201 |
|---|---|---|---|---|---|
| △※ | ○ | ○ | ○ | ○ | ○ |
※一部制限される機能がございます。また、「RewriteEngine」を使うには弊社ではARS202以上からとなります。
ファイルやディレクトリーの制御は、ファイルマネージャだけではできないこともございます。アスカレンタルサーバーでは、「.httaccess」がご利用いただけますので、より詳細に設定が可能になります。
.htaccessを利用すれば、サーバー設定をあなたのお好みにカスタマイズできます。たとえばPCコンテンツと携帯コンテンツの振り分け、ログファイルを直接見られないようにする、画像を直接リンク貼付されないようにするなど思い通りの仕様にできます。この自由度の高さは、プロバイダのWEBスペースや無料のレンタルサーバーでは味わえません。
よく使用される.htaccessのサンプル集です。コピーしてお使いください。
「『.htaccess』とは何?」と思われる方でも、下図のようなポップアップ画面を見たことがあると思います。これは、BASIC(ベーシック)認証がかかっているURLにアクセスしたためです。

BASIC認証を利用すれば、たとえば制作途中のサイトを関係者だけ見ることができるようにしたり、限られた人数でコミュニケーションを図るようなサイト運営にすることができます。
※弊社では『会員制ディレクトリ』と呼んでいます。
BASIC認証を設定するには、アスカレンタルサーバーでは「ファイルマネージャ」をご利用いただければ初心者の方でも簡単に設定することができます。
.htaccessで設定する場合には、「.htaccess」と「.htpasswd」が必要です。「.htpasswd」内には、パスワードをそのまま書かず暗号化をしなければいけません。「.htpasswd」の暗号化を作成できる「.htpasswd暗号化ツール」をご用意しましたので、ご利用ください。.htaccessファイルも同時に作成できます。
「.htpasswdメーカー」.htpasswd暗号化ツール
※注意※
AuthUserFile は絶対パスで記入してください。絶対パスとは弊社ではUNIX系OSですので、頂点「/」からお客様の領域までのサーバー内の道筋です。不明な場合はファイルマネージャから作成して下さい。
asuka:243uDamkJjji2
Satisfy Anyを付けることで条件を満たすことができます。 Satisfyはホストレベルのアクセス制御とユーザ認証との相互作用を指定できます。パラメータはAll か Any で、Allにすればクライアントがアドレスに対して条件を満たしているかどうか判定したのちに、ベーシック認証を行います。 Anyにすれば指定IPアドレス 192.168.xxx.xxx/xxからアクセスが来た時は許可し、それ以外からアクセスが来た時はベーシック認証となります。
これは、.gif .jp(e)g .png .lzh .zipの拡張子を持ったファイルに直接リンクできない設定です。リンク元がhttp://xxxxxx.jp/でないと、リンクをすることができません。
さらに応用編として、http://xxxxxx.jp/からのアクセスと、http://www.xxxxxx.jp/からのアクセスを許可するには、下記のようになります。
CGIなどのファイルデータは「.log」「.dat」とされることが多いです。 これはそれらの重要なファイルを直接ダウンロードされたくない時に利用し、CGIなどからはアクセスできるようにする設定です。 複数の拡張子パターンを記述するには以下のようにします。
振り分けを行うにはPHPやCGIなどのプログラムを使う方法もありますが、 ここでは「.htaccess」のみで制御する方法を公開します。
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} "DoCoMo" [NC,OR]
RewriteRule ^$ http://xxxxxxx.co.jp/i/ [R,L]
例えばトップページに上記のように記述すると、"DoCoMo"の携帯ブラウザは、http://xxxxxxx.co.jp/i/ へアクセスします。 しかし、これではあくまでトップページ「/」にアクセスがきた時に反応するもので、直接「/index.html」として 入力された場合には反応しません。
そこで、そのディレクトリに来たアクセスすべてに反応するように以下に変更します。
RewriteRule ^(.*)$ http://xxxxxxx.co.jp/i/ [R,L]
これで一見、成功したように見えますが、この状態では条件次第で無限ループが発生します。 その条件とは、この「.htaccess」をおいているディレクトリ以下にフォルダを作って振り分けようとしている場合です。
http://xxxxxxx.co.jp/ が、外部のサイトならばまったく問題ありません。 しかし、http://xxxxxxx.co.jp/ にきたものを http://xxxxxxx.co.jp/i/ へリダイレクトしようとしている場合には無限ループが発生します。 「.htaccess」はずっと再帰的にディレクトリに効いていることになりますので、 http://xxxxxxx.co.jp/i/ へヒットした後も、リライト条件にヒットしたことになって、無限ループとなります。 ※最上位にある「.htaccess」がずっと有効になっている状態。
ループしないようにはさらに条件をつけます。無限ループを防ぐには、http://xxxxxxx.co.jp/i/ には反応しないように しなくてはいけません。
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/i/
これにより、http://xxxxxxx.co.jp/i/ は反応しないという条件が加わりました。 「RewriteEngine On」の直後に条件をつけるのが理想的でしょう。
この時点での「.htaccess」の状態
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/i/
RewriteCond %{HTTP_USER_AGENT} "DoCoMo" [NC,OR]
RewriteRule ^(.*)$ http://xxxxxxx.co.jp/i/ [R,L]
これで"DoCoMo"の携帯ブラウザは、トップページにアクセスが来たとたんに、http://xxxxxxx.co.jp/i/ へリダイレクトされるようになりました。 もしファイル名も維持したい場合は、以下のように記述して下さい。
RewriteRule ^(.*)$ http://xxxxxxx.co.jp/i/$1 [R,L]
この設定なら、http://xxxxxxx.co.jp/abc.html にアクセスがきた時は、http://xxxxxxx.co.jp/i/abc.html にアクセスされるようになります。
RewriteCond %{HTTP_USER_AGENT} "SoftBank" [NC,OR]
RewriteRule ^(.*)$ http://xxxxxxx.co.jp/s/$1 [R,L]
携帯の種類によってわけたいのであれば、続けてこのように記入すればOKです。 もちろん、/s/ はリダイレクトに反応しないという記述を忘れないで下さい。
以下、サンプルとなります。
このサンプルは一般的な携帯ブラウザは、/i/ へリダイレクトし、オペラブラウザは、/opera/ ディレクトリを表示させるという方法です
PHPを使って振り分けることも可能です。その場合は以下のような設定になります。参考まで。 このサンプルも書き方を誤ると無限ループになりますので動作環境をご確認の上、ご利用下さい。
<?
$agent = $_SERVER['HTTP_USER_AGENT'];
if(ereg("DoCoMo",$agent)){
header("Location: http://xxxxxxx.co.jp/i/");
exit;
}
elseif(ereg("UP.Browser",$agent)){
header("Location: http://xxxxxxx.co.jp/e/");
exit;
}
elseif(ereg("J-PHONE",$agent)){
header("Location: http://xxxxxxx.co.jp/v/");
exit;
}
else{
header("Location: http://xxxxxxx.co.jp/index2.html");
exit;
}
?>
特定のIPアドレスからのアクセス以外はメンテナンスページを表示させ、 その許可されたIPアドレスからは本来の編集したいページを表示させたい場合などに利用します。
192.168.1.11以外からきたものは、/mente/ へ飛ぶようにする。 もし、IPアドレス帯で指定したい場合は、以下のようになります。
Rewriteのオプションの一部を紹介します。
| オプション名 | 解説 |
|---|---|
| [NC] | パターンの判定区別をしません。大文字・小文字を区別しない場合につかいます。 |
| [OR] | 「○○○かもしくは△△△ 」のような条件指定方法です。指定しない場合は and 条件になります。 |
| [R] | 強制的にredirect(リダイレクト)します。[R=301]や[R=302]もありますが、意図がないかぎりは指定する必要はありません。 |
| [L] | 最終行(Last)です。この行以降のRewriteRuleは無視されます。つづけてルールを書かない場合は、何も書かなくても問題ありません。 |
ドメイン取得は先着順。まずは取得できるか調べましょう!
ドメイン永久無料!
集客に効く!広告5,000円分プレゼント