- ベストアンサー
アドレスバーへの直接入力を禁止するには?
いつもお世話になっています。 今PHPでホームページを製作しているのですがアドレスを直接入力した場合「アドレスの直接入力はできません」としてホームに飛ばしたいのですがPHPでこのようなことは可能でしょうか? 例)www.aaa.comがホームだとするとこのアドレスに手動で手を加えて「www.aaa.com/a.html(ファイルa.htmlは実際に存在するページ)」などとするとエラー画面を表示させ、サイト内のリンクをクリックしてジャンプする場合のみ表示されたいです。 よろしくお願いいたします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
HTTPのレベルでならReferrerヘッダをチェックすればリンク元がわかるから,それがなければ,アドレスバー直打ちと判断する,ってのはあるかもしれない。 #ただし,telnetクライアントとかで直にReferrerヘッダは作り出せるので完全とはいえない あるいは直前のページでCookie食わせて 読み込めるかどうかチェックするとか
お礼
早速ご回答ありがとう御座いました。 >>HTTPのレベルでならReferrerヘッダをチェックすればリンク元がわかるから,それがなければ,アドレスバー直打ちと判断する,ってのはあるかもしれない。 上記の内容は効果がありそうです。 一度詳細について調べてみたいと思います。 Cookieについては動的なページのためすべてのページにクッキーを付けるのは難しいかもしれません。
補足
Javaを利用して、 <script language="JavaScript"><!-- myHome="xxxxxx"; if (document.referrer.length !=0){ // リンク元がxxxxではない場合 location.href = myHome; // エラー画面へジャンプ } // --></script> で問題なく動作しました。 Referrerのご提案ありがとう御座いました!!