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


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

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

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2013/11/26 20:55:05

ベストアンサー

id:a-kuma3 No.2

回答回数4973ベストアンサー獲得回数2154

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


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 なタグを埋め込んで飛ばしちゃえば良い。



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

id:ryo0821

まさにこのようなものを望んでいました。
ご回答ありがとうございました!

2013/11/26 23:32:38

その他の回答1件)

id:cawbridge2013 No.1

回答回数174ベストアンサー獲得回数17

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

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

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

id:a-kuma3 No.2

回答回数4973ベストアンサー獲得回数2154ここでベストアンサー

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


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 なタグを埋め込んで飛ばしちゃえば良い。



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

id:ryo0821

まさにこのようなものを望んでいました。
ご回答ありがとうございました!

2013/11/26 23:32:38
  • id:artcube-yoshida
    ヨッシーおじさん 2013/11/20 11:07:16
    こんにちわ。

    >特定のURLからアクセスされた場合は内容を。
    例えばですが、この「はてな」からとかでしょうか?
    http://q.hatena.ne.jp/1384862083 に異なるリンクを付けてそこをクリックしたらばという事ででしょうか?

    アドレス直入力された場合は別のページをリダイレクト。
    こちらはリンクをクリックせずに、ブラウザのURLを入力する部分から直接入力したことを判断するという事でしょうか?

    質問の内容が詳しくわからないので質問してみました。よろしくお願いします。



この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません