• ベストアンサー

phpでリダイレクトのみ許可したい

今、ログイン機能を作成しております。 ログイン情報があって情報が一致した時のみリダイレクトを実行させよう考えてます。 絶対条件が2つです!! (01)特定のページからリダイレクトがあった場合のみ表示させたい →これはできて確認済みです (02)urlバーに直接入力または貼り付けなどのアクセスなにもさせない →この方法がわかりません。 大変恐縮ですが、ご教示よろしくお願いします。

  • PHP
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • chie65535
  • ベストアンサー率43% (8519/19367)
回答No.1

>(02)urlバーに直接入力または貼り付けなどのアクセスなにもさせない >→この方法がわかりません。 環境変数HTTP_REFERERの値を調べます。 アドレスバーに以下のURLを貼り付けした場合と、リンクをクリックした場合で、表示を見比べてみて下さい。 https://oku.edu.mie-u.ac.jp/~okumura/php/env.php アドレスバーにURLを貼り付けした場合は、HTTP_REFERERはセットされずに呼び出されます。 但し、ブラウザによっては「HTTP_REFERERを正しくセットして来ない場合」がありますので、注意して下さい(Refererの送信に関しては、規格上、オプションと定義していますので、すべてのブラウザーが必ず送信してくるとは限りません) なので、ブラウザによっては「正しいページから正規の手順で正しく飛んできたのに、アドレスバーに直接入力したと誤解される場合」があります。

sato965
質問者

お礼

nice!!速攻解決できました。 Edige?とchromeは大丈夫っぽいです。 ありがとうございました。

関連するQ&A

  • 外部へのアクセスでリダイレクト

    例えばphpで外部URL(自身とは別のドメイン)へ header() を使ってリダイレクトしようとしたとします。 そのアクセスをApacheのディレクティブで自身の特定のパスにリダイレクトすることは可能で しょうか。 つまりサーバ内部(php)で発生した特定URLへのアクセスについて、Apacheディレクティブを使ってリダイレクトしたいというわけです。

  • ブックマークからのリダイレクトについて

    ブックマークからのリダイレクトについて ブックマークに登録されているURLにアクセスした時のリダイレクトについて質問があります。 ブックマークに登録されているURLからアクセスした時だけに特定のURLにリダイレクトさせる実装ができません。 どのように実装させるのか教えていただけますか? よろしくお願いいたします。 具体的には Aというリンク先があります。 そのAというリンク先がブックマークに登録されている場合のみ、Bというリンク先にリダイレクトをさせたいです。(301か302は今のところ未定) その場合は、実装可能ですか? 言語は、C#とASPです。

  • .htaccessのリダイレクトの書き方

    .htaccessのリダイレクト処理で http://sample.com/index.phpにpost情報込みでアクセスがあった場合、 「www統一」 「index.phpなし」 「index.phpなしアドレスにリダイレクトされた場合もpostの値を取得できる」 という条件を満たすコードはどのようにすれば良いのでしょうか? 「www統一」や「index.phpなし」は説明サイトも多いので可能なのですが、リダイレクト後のURLでもpostの情報を取得する方法がわかりません。 どうそよろしくお願いします。

    • ベストアンサー
    • HTML
  • リダイレクトURLのなぞ

    先ほど以下の質問をしたものです。 URLでのリダイレクト? http://okweb.jp/kotaeru.php3?q=1213110 http://rd.yahoo.co.jp/shopping/ymain_cbox/left/?http://shopping.yahoo.co.jp/food_and_drink/ というような二つのURLに?を挟んだURLは何をやっているのかという質問でした。 無事回答を頂き、apacheかCGIが?以降のURLへ転送しているのだと理解できました。 そこで思い出したのですが、確か2chでも似たようなものがあったように思います。2chの場合は、リファラーによってどこのスレッドから飛んできたのかということが特定されると不都合なので、間にリダイレクト専用のページ?のようなものを挟むことで、どこのスレッドにリンクが張られようが、そのリンクへのアクセスはすべて一度そのリダイレクト専用ページに飛ばされ、そこから再度目的のページへ飛ぶような仕組みになっているから、リファラーが特定されないというような話を見たことがあります。 しかしYahooにはそんな理由はあてはまらないと思います。リファラーを偽装するのが目的でないとしたら、Yahooは一体なんのために、こんなリダイレクトの仕組みを設けているのでしょうか? カテゴリがここであっているか分からないのですが、情報がありましたらお教えください。 よろしくお願いします。

    • ベストアンサー
    • HTML
  • スマホからのアクセスをリダイレクト

    とあるファイルにアクセスすると別のサイトにリダイレクトされるサイトがあります。 私のサイトではないため、どのような方法で設定しているかは分かりません。PHPではなくJavascriptや.htaccessなどで設定している可能性もあります。ただこちらのカテの方がプログラムに詳しい方が多いと思ったので。 なので回答も憶測で構いません。皆さんの豊富な経験からどのような事が考えられるのかお聞きしたいです。 例えば『 http://×××.com/ka/ 』(ロリポップサーバー使用)というURLにアクセスすると『http://○○○.info/』(日本語ドメイン使用)というサイトにリダイレクトされます。 PCからは正常にPC用のサイトにリダイレクトされるのですが、私のスマホ(Android(SO-04E))からアクセスするとリダイレクトされず真っ白になります。iPhoneからのアクセスは正常にスマホ用のページにリダイレクトされます。 これはどのような事が考えられるでしょうか?前述の通り、憶測で構いません。 コードの記述にミスがあるんじゃないのか?と言われればそれまでですが。何か原因は考えられるでしょうか? ご存知の方いらっしゃいましたらご教示ください。 よろしくお願いします。

    • 締切済み
    • PHP
  • リダイレクトでPOSTリクエストを復元する方法

    【行いたいこと】 RailsでRESTフルなリソースを扱うアプリを開発しています。 アプリはユーザ認証機能を備えており、 RESTフルなリソースの操作(作成や削除など)はログインしたユーザだけが行えます。 ログインしていないユーザがこれらの操作をおこなうリクエストを送ってきた場合には、 認証ページに遷移させ、ユーザがログインした直後に、 ユーザ操作なしで当初のアクセスに対する操作処理を行いたいです。 【もくろみ】 ログインしたユーザだけが行える操作へのアクセスは、 フィルタ(before_filter)を使いインターセプトし、 ログインしていないユーザの場合には認証ページにリダイレクトします。 インターセプタ時点でリクエスト情報をセッションに格納しておき、 ログイン後にセッションからリクエスト情報を取り出し、 その情報を使ってリダイレクトすれば良いと考えました。 【問題点】 GETリクエスト(GETメソッドでのHttpリクエスト)をインターセプタした場合は上手くいきましたが、 POSTリクエストではリクエストを復元できません。 GETメソッドのリクエストになってしまいます。 リダイレクト(redirect_to)はブラウザにGETリクエストしか要求できないためです。 何か解決策はありますでしょうか。 よろしくお願いします。

  • htaccessで、特定IP以外をリダイレクトさせたい。

    初心者です。 .htaccessを使ってメンテナンス画面を表示させようと思っています。 条件として、 ・特定のファイルへのアクセスを、リダイレクトさせる。 ・動作確認を行うため、自分のIPの場合はリダイレクトさせない。 ファイルに対してのリダイレクトは、 Redirect /aaa/aaa.php /maintenance/maintenance.html 特定IPに対して、ディレクトリ単位のリダイレクトは、 order deny,allow deny from all allow from xxx.xxx.xxx.xxx ErrorDocument 403 /maintenance/maintenance.html というところまでは解決したのですが、 「特定IPに対して、ファイル単位のリダイレクト」 は、どのように指定すればよいのでしょうか?

    • ベストアンサー
    • HTML
  • URLのリダイレクトに関する質問です。

    URLのリダイレクトに関する質問です。 http://hoge.hogera.org/12345.html にアクセスした時に http://hoge.hogera.org/hoge.html?id=12345 を実行させるために ewriteEngine on RewriteRule ^([0-9)]+)\.html$ hoge.html?id=$1[R=301,L] としています。 実際にこれで問題なくhttp://hoge.hogera.org/hoge.html?id=12345にアクセスできます。 この時、ブラウザーで表示させるURLもhttp://hoge.hogera.org/hoge.html?id=12345 となってしまうのですが、これはもとのURL http://hoge.hogera.org/12345.html とするにはどうすればよいでしょうか?

  • mail リダイレクト

    Mac標準メールソフト「Mail」(バージョン4.1。Mac OS X 10.6.1) PCに来たメールを携帯電話にリダイレクトしたいと考えています。しかしいくら設定をしても、PCを立ち上げた時にしかメールが送られてきません。 設定は以下の通りです。 「環境設定」>「ルール」から、 ※以下の「すべての」条件に一致した場合:   「宛先」「XXXXXXXXX@xxx.xxx(PCアドレス)」「である」   「受信日」「1」日前「より新しい」 ※以下の操作を実行   「メッセージをリダイレクト」宛先:「xxxxxxxxx@ezweb.ne.jp」 です。 設定はルールでしか行っていないのですが、その他に設定しなくてはいけない項目等があるのでしょうか? それともPCの電源が落ちている状態でのリダイレクトは不可能なのでしょうか? 宜しくお願い致します。

    • 締切済み
    • Mac
  • SSIでリダイレクトできないでしょうか?

    あるページにアクセスがあったら、IPアドレスをチェックして特定のIPアドレスからのアクセスのみ他のページにリダイレクトし、こういう処理をしたというログを保存したいのですが、方法がわかりません。 現在は、SSIで呼び出したスクリプトでIPチェック後、該当すればJavascriptのtop.location.hrefを書き出しています。この方法だとJavascript自体をOFFにされると機能しません。 METAタグのREFRESHではページをロードしてからのリダイレクトになってしまいます。 ページへのリンク自体をCGIへのリンクにしてLocationヘッダを出力すればいいのでしょうが、直接ページにアクセスされるとこの手も使えません。 .htacceessでdenyして、403のエラードキュメントとして上記の処理をするページを作ってみましたが、このエラードキュメント自体にアクセスできません(denyしているので当たり前ですね)。 何かいい方法はないでしょうか?

    • ベストアンサー
    • CGI

専門家に質問してみよう