206054662
201976982

mod_rewriteを使ったアクセス制御

対象サービス・プラン
Image
 

.htaccessを配置することで、ウェブアクセスに関わる設定を行なう事ができます。

前提条件

  • mod_rewrite の記述方法について設定を誤りますと次のような状態となり、お客様のサーバ運用に支障を来たす恐れがあります。
    ・Internal Server Error となりホームページが閲覧できなくなる
    ・無限ループを引き起こし、サーバに負荷を掛けてしまう
    充分な動作確認の元、運用を開始してください。
  • 記述内容や設定方法についてはサポート外となり、このページでご案内しているのはあくまで一例です。
    詳しい設定方法や機能についてはウェブサーバ ( Apache ) の専門書籍などをご確認ください。

ページの先頭へ

mod_rewriteを使ったアクセス制御

さくらのレンタルサーバではmod_rewriteをご利用いただけます。
この機能を使用することで、ブラウザに表示させる文字列を任意に制御できます。

本ページに記載のサンプルはexample.sakura.ne.jpという初期ドメイン名にexample.jpというドメインを追加し、
以下のようなディレクトリ構成で運用することを前提としています。

  • mod_rewriteはウェブサーバApacheの拡張機能であるため、設定は.htaccessに記述します。
  • mod_rewriteを使用する際、「RewriteEngine On」という構文を先に書き、宣言しておきます。
    なお、この宣言は対象とする.htaccess内に一度のみで構いません。

ページの先頭へ

リダイレクト

URL書き換えリダイレクト

www.example.sakura.ne.jp/dir1/ へアクセスすると、
www.example.sakura.ne.jp/dir2/ にリダイレクト(転送)されます。

RewriteEngine On
RewriteBase /
RewriteRule dir1/(.*) dir2/$1 [R,L]

  • [R]をつけるとブラウザのURLの表示も書きかわります。
    アクセス⇒http://example.sakura.ne.jp/dir1/
    ブラウザのURLの表示⇒http://example.sakura.ne.jp/dir2/
  • [L]をつけると判定をその場で終了します。
    このページに記載の内容であれば付与しなくても動作に支障はありませんが、付与されることをお勧めします。

ページの先頭へ

初期ドメインにアクセスがあった場合独自ドメインへリダイレクトさせる

さくらのレンタルサーバの初期ドメインを表示させたくない場合に有効です。

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?example\.sakura\.ne\.jp$ [NC]
RewriteRule .* http://www.example.jp%{REQUEST_URI} [R=301,L]

  • [NC] をつけると大文字・小文字を区別しなくなります。
  • RewriteCond行に指定する文字にドット . が含まれる場合、直前に \ 記号を挿入してください。
  • [R=301] 301はHTTPステータスコードを示し、恒久的な転送を意味します。
    この場合は検索エンジン等、機械的なアクセスに対する効果を想定しています。
  • この方法はドキュメントルート(/home/初期ドメイン名/www) 直下に設置した場合のみ機能します。
    初期ドメインへのアクセスを禁じたい場合、.htaccessによるアクセス制御をお試しください。

ページの先頭へ

スマートフォン振り分け その1

アクセス元の端末によって表示させるページを切り替えることも可能です。

# iPhone/ipod Touch でアクセスした場合 /iphone/配下へリダイレクト
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} (iPhone|iPod) [NC]
RewriteRule ^$ /iphone/ [R,L]

# iPad でアクセスした場合 /iphone/配下へリダイレクト
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} iPad [NC]
RewriteRule ^$ /ipad/ [R,L]

# Android でアクセスした場合 /Android/配下へリダイレクト
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} Android [NC]
RewriteRule ^$ /android/ [R,L]

ページの先頭へ

スマートフォン振り分け その2

スマートフォンからのアクセスに対して同一の内容で表示させたい場合、以下のように記述します。

# 大手のスマートフォンOS対象 smartphone配下へリダイレクト
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} (iPhone|iPod|iPad|Android|BlackBerry|Windows Phone|Symbian) [NC]
RewriteRule ^$ /smartphone/ [R,L]

さくらのサポート情報

メニューを閉じる