同一URLのままでスプラッシュページを作る
「最初の訪問時だけ、トップページでフラッシュ・ムービーが流れる」というようなページを手軽に作る方法です。
【スプラッシュページという手法】
Web制作には、「スプラッシュページ」という手法があります。これは実際のトップページの前に配置する、フラッシュなどを使用したリッチな扉ページのことです。大抵は、そのサイトのイメージを演出するフラッシュムービーが流れ、ムービーが終わるかスキップボタンを押すかすると、サイトの本体に移動するような仕組みになっています。
古くからある手法ですが、Web業界では賛否両論で、特にユーザビリティの観点からは「全く意味のないページ」として批判されることも多い手法です。
しかし、業務としてWeb制作をしていると、「スプラッシュページが欲しい」という要望があるのもまた事実です。
期間限定のキャンペーンサイトや、アパレルブランドのサイトなど、イメージ演出に対するニーズが高い場合が考えられますね。
【トップページのURLが変わってしまう】
そこで、普通に作るとこうなります。
index.htmlをスプラッシュページにする→top.htmlに移動
しかしこれだと、サイト内のトップページへのリンクを全てtop.htmlにしなくてはなりませんし、”/”で接続すると毎回フラッシュが流れ始めてしまいます。
【index.htmlのまま、スプラッシュと通常ページを切り替えたい】
同じURLのまま、スプラッシュページを管理することが出来れば、リンクもキレイに決まりますし、運用していくうちにスプラッシュページを廃止することも容易です。
ただし、毎回トップページに戻るたびにスプラッシュページにならないようにします。
そこで、phpとmod_rewriteを使用して、訪問者の状態に応じて、表示させる内容を変更する簡易プログラムを作成いたしました。
■サンプルページ
外部サイトからの移動、直接アクセスなどで、1回目の訪問時にはフラッシュが表示され、それ以降、サイト内の遷移では通常のトップページが表示されます。
■必要なファイル群
- index.php …リファラーを元にアクセスを振り分けます。
- index.html …通常のトップページです。
- splash.html …スプラッシュページです。
- .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が実行可能なサーバー環境
まさにやりたいことなのですが、
index.phpのコードがわかりません。
どうやって振り分けるのでしょうか?
よろしくお願いいたします。
どこかに書いたんですが、行方不明になってしまいました。
時間が出来たらもう一回書いてみるのでお待ちください。
現状、index.htmlならトップページで、/ならスプラッシュページのように切り分けていますが、やはりこれは駄目ですよね。
よろしくお願いいたします。
“同一URLのままでスプラッシュページを作る | Weblogy” http://t.co/P2kAgzM2
「最初の訪問時」であれば、cookieな気がする。