人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

一つのWebページで表示内容を変えたい場合どのようにすればいいのか教えてください。

特定のURLからアクセスされた場合は内容を。
アドレス直入力された場合は別のページをリダイレクト。

このような感じにしたいのです。
よろしくお願いします。


●質問者: 秋雨@Slime_hatena
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● cawbridge2013

ランダムに?それとも端末ごとに?

ランダムやPCと携帯電話のスマホなど端末ごとに表示を変えるのはCSS。

css 端末 振り分けで検索するとデバイスごとに表示を変える方法が出てくる。


2 ● a-kuma3
ベストアンサー

「リファラ」というものを使って判断します。


javascript が使えるところなら、こんな感じ。

<script>
 var re_myhost = /^http:\/\/q.hatena.ne.jp/;

 if (! re_myhost.test(document.referrer)) {
 document.location.href = "http://www.hatena.ne.jp";
 }

</script>

q.hatena.ne.jp から飛んできたのではなければ、www.hatena.ne.jp に飛ばす、という書き方です。


Webサーバ (Apache) の設定がいじれるなら、mod_rewrite というのを .htaccess に書くことでも実現できます。

RewriteEngine on

RewriteCond %{HTTP_REFERER} !^ http://q\.hatena\.ne\.jp/.*$ 
RewriteRule ^(.+)$ http://www.hatena.ne.jp

先程の javascript の場合と、同じことをやっているつもり。


他にも php なんかでも判断できます。

'HTTP_REFERER'
現在のページに遷移する前にユーザーエージェントが参照していた ページのアドレス(もしあれば)。これはユーザーエージェントに よってセットされます。全てのユーザーエージェントが これをセットしているわけではなく、また、HTTP_REFERER を変更する機能を持つものもあります。 要するに、信頼するべきものではありません。

http://php.net/manual/ja/reserved.variables.server.php

期待しないリファラだったら、meta refresh なタグを埋め込んで飛ばしちゃえば良い。



# 偽装もできちゃうんですけどね (´・ω・`)


秋雨@Slime_hatenaさんのコメント
まさにこのようなものを望んでいました。 ご回答ありがとうございました!
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ