回答 受付中

htaccessでの参照元による条件分岐?について

  • 困ってます
  • 質問No.9565510
  • 閲覧数30
  • ありがとう数2
  • 気になる数1
  • 回答数2

お礼率 0% (0/2)

ワードプレスにてwebページを作成している初心者です。
会員向けページとまではいかないのですが、前ページのリンクボタンからのみ閲覧可能、それ以外からのアクセス(直接URLを入力、ブックマークからのアクセス)は前ページへリダイレクトさせるようhtaccessを利用したいのですがうまくいきません。

例)ページA(リンクボタン設置ページ)からのアクセスはページBを表示(許可
  その他(URL直接入力等)からのアクセスはページAを表示(リダイレクト

ページAからのみページBを表示させることはできたのですが、それ以外からのアクセスに対しては
ページAへリダイレクトさせる方法が分かりません。
htaccessをどのように書いたら良いのかご教示ください。

初心者で質問自体も稚拙なものとなっておりますがご教示いただけますと幸いです。

回答 (全2件)

  • 回答No.2

ベストアンサー率 50% (1181/2329)

コンピューター カテゴリマスター
#1さんの回答を実はちょっと待ってた。
そうなんです。リファラーはブラウザによって動作しないことと、
簡単にねつ造や、固定できるので、そうするとサイト自体が機能しなくなる
恐れがあるのです。
別案としてはクッキーなんですが、こちらもクッキーもブラウザによって
動作しないのです。

A.特定のページ(クッキーをセット)
B.それ以外のページは、クッキーがないとき、リダイレクトでAへ

でも同じ結果なのですが。

後はPOST受け渡し方式。
Aでのページ遷移で、POSTを渡し、それがないときAへ戻す。
しかし、これは全部のボタンをPOSTにしないといけないので、面倒

結論として、今の作り方を変えるほうがずっと効率的ではないだろうか?
になるので、回答控えてたんです。この件。
補足コメント
villageit

お礼率 0% (0/2)

ご回答ありがとうございます。
やはりリファラを利用しての操作はお勧めできないとのことですね。。。
POSTの受け渡し、、、ボタン自体の数は少数なので調べてトライしてみたいと思います。
投稿日時 - 2018-12-08 16:20:11
感謝経済
  • 回答No.1

ベストアンサー率 66% (95/142)

mod_rewrite を使えば出来るはずです。

=============== .htaccess に記載
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?hoge\.com/test\.html [NC]
RewriteRule ^.*$ http://hoge.com/test.html [R=302,L]

上記の.htaccessをアクセスを制限させるディレクトリに設置します。
※当然ながら正しいリンク元(このサンプルではtest.html)と同じディレクトリに設置してはいけません。

ポイントは RewriteCond で指定したリファラURL直前の「!」です。
これは否定を意味し、リファラが「!」に続くURLではなかった場合、RewriteRule で指定したURLにリダイレクトする振る舞いになります。

なお、ご存知とは思いますが、リファラはすべての端末が送り出すものではありませんので、今回のようにリファラを利用して何かを行うという操作はお勧めできるものではありません。
補足コメント
villageit

お礼率 0% (0/2)

ご回答ありがとうございます。
リファラを利用しての操作はお勧めできないとのことですが他にはどのような方法がございますでしょうか?
お手数をお掛けして申し訳ありませんが、他の方法もご教示いただけますと幸いです。
投稿日時 - 2018-12-08 16:17:57
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する

特集


感謝指数をマイページで確認!

ピックアップ

ページ先頭へ