同一URLのままでスプラッシュページを作る

「最初の訪問時だけ、トップページでフラッシュ・ムービーが流れる」というようなページを手軽に作る方法です。

【スプラッシュページという手法】

Web制作には、「スプラッシュページ」という手法があります。これは実際のトップページの前に配置する、フラッシュなどを使用したリッチな扉ページのことです。大抵は、そのサイトのイメージを演出するフラッシュムービーが流れ、ムービーが終わるかスキップボタンを押すかすると、サイトの本体に移動するような仕組みになっています。

古くからある手法ですが、Web業界では賛否両論で、特にユーザビリティの観点からは「全く意味のないページ」として批判されることも多い手法です。

しかし、業務としてWeb制作をしていると、「スプラッシュページが欲しい」という要望があるのもまた事実です。
期間限定のキャンペーンサイトや、アパレルブランドのサイトなど、イメージ演出に対するニーズが高い場合が考えられますね。

【トップページのURLが変わってしまう】

そこで、普通に作るとこうなります。

index.htmlをスプラッシュページにする→top.htmlに移動

しかしこれだと、サイト内のトップページへのリンクを全てtop.htmlにしなくてはなりませんし、”/”で接続すると毎回フラッシュが流れ始めてしまいます。

【index.htmlのまま、スプラッシュと通常ページを切り替えたい】

同じURLのまま、スプラッシュページを管理することが出来れば、リンクもキレイに決まりますし、運用していくうちにスプラッシュページを廃止することも容易です。
ただし、毎回トップページに戻るたびにスプラッシュページにならないようにします。

そこで、phpとmod_rewriteを使用して、訪問者の状態に応じて、表示させる内容を変更する簡易プログラムを作成いたしました。

■サンプルページ

外部サイトからの移動、直接アクセスなどで、1回目の訪問時にはフラッシュが表示され、それ以降、サイト内の遷移では通常のトップページが表示されます。

■必要なファイル群
  1. index.php …リファラーを元にアクセスを振り分けます。
  2. index.html …通常のトップページです。
  3. splash.html …スプラッシュページです。
  4. .htaccess …mod_rewriteでindex.phpを常にインデックスとして振るまわせます。
■コードの解説

『index.php』
ホスト名、インデックスページ、スプラッシュページの3つは、設置する場所によって書き換えてください。

『.htaccess』

広告

DirectoryIndex index.php
Options -Indexes
#↑index.phpがインデックスになるようにし、念のためにファイルの自動インデックスを不可にします。
 
RewriteEngine On
#RewriteCond %{REQUEST_URI} ^/$
#RewriteRule ^(.*)$ /index.php
RewriteCond %{REQUEST_URI} ^/index\.html$
RewriteRule ^(.*)$ /index.php [L]
#↑mod_rewriteを使用して、"index.html"、"/"へのリクエストをindex.phpに振り向けます。

これで、最初の訪問時だけフラッシュムービーを流れるページを作ることが出来ます。
(スプラッシュページという手法の是非はともかくとして)

■動作環境

php、mod_rewrite、htaccessが実行可能なサーバー環境

About: dacelo


5 thoughts on “同一URLのままでスプラッシュページを作る”

  1. まさにやりたいことなのですが、
    index.phpのコードがわかりません。
    どうやって振り分けるのでしょうか?

    よろしくお願いいたします。

  2. どこかに書いたんですが、行方不明になってしまいました。
    時間が出来たらもう一回書いてみるのでお待ちください。

  3. 現状、index.htmlならトップページで、/ならスプラッシュページのように切り分けていますが、やはりこれは駄目ですよね。
    よろしくお願いいたします。

Leave a Reply

Your email address will not be published. Required fields are marked *