• ベストアンサー

クライアントの指定したURLのHOST名を取得したい

クライアントの指定したURLのHOST名を取得したい PHPでWebページを作成しました。 クライアントより記入されるURLのHOST名が"www"がつく場合と、 つかない場合があります。 クライアントの送信したURLのHOST名の文字列を取得する方法はありますか? もしくは、トップページで必ず既定のURL(HOST名固定)に飛ぶようにする方法はありますか? header("location:...")の方法は知っているのですが、.htaccess等で指定する方法 があったら、助かります。 どうか、お願いいたします。

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

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

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

とりあえず$_SERVER["HTTP_HOST"]をみてみてください

idaira
質問者

お礼

ありがとうございます。$_SERVER["HTTP_HOST"]でリクエストHEADERで 指定されているHOST名(※つまりWWW付きの場合があり得る)が取得 できることが分かりました。 どうもありがとうございます。

関連するQ&A

  • 指定URLを新しいウィンドウで開くには

    PHPで指定したURLにジャンプするには、 header("Location:http://www.*****"); と記述すればジャンプすると思うのですが、 新しいウィンドウで指定したURLを開くには どうしたらよろしいのでしょうか? よろしくお願いします。

    • ベストアンサー
    • PHP
  • 指定URLのヘッダー情報取得について

    お世話になっております。 現在指定したURLよりヘッダー情報を取得する処理の確認をしているのですが 指定URL先のHTMLファイルからうまくヘッダー情報を取得することができません。 javaおよびURL先のHTMLは以下のようになっております。 [java] HttpClient client = new HttpClient(); String raddr = 指定URL; GetMethod gMethod = new GetMethod( raddr ); Header addr = new Header("ADDR", raddr); gMethod.setRequestHeader(addr); client.executeMethod( gMethod ); Header[] headers =gMethod.getRequestHeaders(); for(Header h : headers) { logger.trace("getHeader : " + h.toString()); } [HTML] <html> <head> <META http-equiv="Set-Cookie" content="cookievalue=aaa;expires=Sun, 20-Sep-1996 11:10:11 GMT; path=/"> <META http-equiv=Content-Type content="text/html; CHARSET=UTF-8"> <title>notitle</title> </head> <body>test</body> </html> javaの変数addrまでは取得できており取得したURLへとぶとHTMLの中身が確認できますが java上でHeaderの内容が確認できません。 実際はSet-Cookieの内容を取得したいのですがヘッダーで取得された内容は ユーザーエージェントとHostのみでした。 どうにかHTML側でjavascriptを使用せずにSet-Cookieの記述のみで java側にSet-Cookieの内容を取得させたいのですが なぜヘッダー情報が取得できないのかご教授のほどよろしくお願いします。

    • ベストアンサー
    • Java
  • URLの取得

    myframeという名前のiframe内に表示されているページのURLを取得するためのスクリプトです。 <SCRIPT TYPE="text/javascript"> <!-- function geturl(){ url = document.myframe.location; } --> </SCRIPT> これを実行した際に、www等のサブドメインが無いURLの場合はURLを取得出来るのですが、サブドメインがあるURLの場合URLが取得出来ませんでした。 原因が分からず困っています。 解決方法を教えていただけますでしょうか。 また、WEBサーバの設定によってはURLが取得出来ないという事はあるのでしょうか? よろしくお願いいたします。

  • PHPでのURL取得とブックマークについて

    お世話様になります。 現在[hoge.php]ページ内の<iframe>タグに[.html]ページをPHPプログラムでランダムに読み込んでいます。 (例)、 [hoge.php]に[A.html]が読み込まれた [hoge.php]に[B.html]が読み込まれた [hoge.php]に[C.html]が読み込まれた つまり上記の様になりますが、例えば『[hoge.php]に[B.html]が読み込まれた』という状態をPHPを使ってURL取得するにはどの様なプログラムを書けば宜しいでしょうか?また、この状態をブックマークさせる方法は有るでしょうか? 一応、今は現在のページURLを取得する方法として <? print("http://" . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]); ?> という記述のみ使っています。 どうぞ宜しくお願いいたします。

    • ベストアンサー
    • PHP
  • header(Location)で相対URL指定方法?

    お世話になります。 $_SERVER['HTTP_REFERER'] を使って得た値からheader(Location~) でURLを指定したいのですが 調べてみたら、絶対URL指定以外は 駄目みたいなのですが。 色々調べてみたのですが イマイチ、ピンときません。 あまり難しくない方法はないのでしょうか? 他の指定方法とかはないのでしょか? 宜しくお願い致します。

    • ベストアンサー
    • PHP
  • LocationにてHeader送信時にURLの#以降が消える

    初めて質問させて頂きます。よろしくお願いいたします。 LAMP構成にてWEBデータベースを作成しています。 Locationを使用したHeader送信の際、指定URLの特定の位置にリンク させるため、URLの最後に #を指定してリンク先を指定して いるのですが、実際にHeader送信されると、 目的のページはちゃんと開けますが URLの#以降が消えて指定の位置にリンクできません。 header("Location: {$_SERVER["PHP_SELF"]}?{$mySID}#{$myID}"); exit; もちろん、HTML側には、リンク先である、 <A name={$myID}></A> が指定されています。 ですので、ページが開いた後に、URLの最後に手で#999 などと 入れて再読込すると正しくリンクできます。 Apacheのアクセスログを見ると、#以降が無いURLがGET送信されていることが確認できました。 2つのサイトを作成しており、同じようなLocationを使用した Header送信を行っている箇所がいくつかありますが、 このような現象に遭遇した経験が無いもので、 どうしたらよいか途方にくれています。 何か、特定の条件にマッチした場合に、#以降の値が消えて WEBサーバーに送信される などということがあるのでしょうか? どんな小さいことでも、構いませんので、 どなたか、レスを頂けないでしょうか? どうぞ、よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • 【php】ログイン後、元いたページにリダイレクト

    こんばんは。phpを勉強し始めたばかりの者です。宜しくお願いします。 会員制サイトを作っています。 そこで、 ページにログインなしで来ると、ログインページにリダイレクト、ログインすると、元いた場所にリダイレクトされるようにしたいです。 以下のような方法はセキュリティ的に問題ありますでしょうか? セッションに戻るページを覚えさせて、 if (!isset($_SESSION["name"])) { $_SESSION['return'] = $_SERVER["REQUEST_URI"]; header("Location: login.php"); exit; } ログイン処理を終えた後、 if(!empty($_SESSION['return'])){ $url = $_SESSION['return']; header("Location: $url"); exit; } else { header("Location: top.php");// 戻るページがない場合、トップページへ exit; } のようにして、戻ります。 が、期待した通りの動きはできたのですが、セキュリティ的に問題がないかどうか不安です。 もし、やめた方が良いのでしたら、どのような方法が考えられますでしょうか。 ご指導ください。宜しくお願いします。

    • ベストアンサー
    • PHP
  • 【PHP・.htaccess】PCと携帯の振り分けについて

    【PHP・.htaccess】PCと携帯の振り分けについて お世話になります。 PHP・.htaccess共に初心者なのですが、 PCサイトと携帯サイトの振り分けで悩んでいるので宜しくお願い致します。 現在の構成が http://sample.com/ ←トップページ(PHPファイルのみ。各トップへ振り分け) http://sample.com/pc/ ←PCトップページ http://sample.com/mo/ ←モバイルトップページ(.htaccessでIP制限。PCからのアクセスはトップへ) ---------------------------------------------------- 振り分けPHP(http://sample.com/) <?php $agent = $_SERVER['HTTP_USER_AGENT']; if(preg_match("/^DoCoMo/i", $agent)){ header("Location: http://sample/mo/"); exit; }else if(preg_match("/^(J-PHONE|Vodafone|MOT-[CV]|SoftBank)/i", $agent)){ header("Location: http://sample/mo/"); exit; }else if(preg_match("/^KDDI-/i", $agent) || preg_match("/UP.Browser/i", $agent)){ header("Location: http://sample/mo/"); exit; }else{ header("Location: http://sample/pc/"); exit; } ---------------------------------------------------- となって居ますが、都合により http://sample.com/ ←PCトップ モバイルからのアクセスはmoに振り分け。 http://sample.com/mo/ ←モバイルトップページ。(.htaccessでIP制限。PCからのアクセスはトップへ) 上記の形に切り替えたいと思っています、 PHPを使って振り分けをしたいと思っているのですが、 上記の形を再現する事は出来ますでしょうか? また、.htaccessを利用する事により解決が出来るのであれば、 そちらもご教授いただけると幸いです。

    • 締切済み
    • PHP
  • フレームで呼び出したhtml名の取得

    お世話になります。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=2374524 で、教えて頂いた関数呼び出しについてです。 フレームを左右に分割しています。 左側 frame_left.html    name="left" 右側 最初page1.html    後でページを切り替える name="main" としたとき、 frame_left.htmlで <a href="page2.html" onclick='getTagName();' target="main">ページ2</a> とすると、右側フレームはpage2.htmlに切り替わります。 このとき、getTagName();が、ページが切り替わった後に実行される方法として、 No1.talepandaさんに、 <body onload="window.parent.left.getTagName();"> と、いう方法を教えて頂きました。 ここで、関数getTagName()で、この呼び出したhtml名、つまりpage2.htmlを取得できないものでしょうか。 いろいろと試してみました。 alert("window.parent.mainfrm.location.href="+window.parent.mainfrm.location.href); //framesetを定義したhtml名となってしまう。 alert("window.mainfrm.location.href="+window.mainfrm.location.href); //スクリプト停止 alert("location.href="+location.href); //frame_left.htmlになる。 と、いうことでいずれもダメでした。 このような呼び出し方をした場合、呼び出しもとのhtml名を取得できないのでしょうか。 どうか、よろしくお願いいたします。

  • header関数で遷移した際のURLエンコード

    こんにちは。 XOOPSを利用しております。 ログイン画面を表示する際にSSL化したいため、PHPのheader関数を利用してSSLページを表示させることをしております。 その場合に、ログイン後のリダイレクトするページを保存するために、「xoops_redirect="リダイレクト先URL"」という変数をURLに埋め込んでおります。 そこで解決できない問題があります。 header()使用時には、xoops_redirectの値をURLエンコードして以下のように送っております。 header(Location: https://localhost/xoops/user.php? xoops_redirect=%2Fxoops%2Fmodules%2Fcs%2Fsearch.php%3Fcid%3D1%26aid%3D1);" しかし、表示されるURLを見ると以下のようにxoops_redirectの値がURLエンコードされておりません。 https://localhost/xoops/user.php? xoops_redirect=/xoops/modules/cs/search.php?cid=1&aid=1 よって、$_GET['xoops_redirect']で値を取得すると、"/xoops/modules/cs/search.php?cid=1"という部分のみしか取得できません。 何か分かることがありましたら教えてほしいです。 別の解決方法でもぜんぜんかまいません。 よろしくお願いいたします。

    • ベストアンサー
    • PHP

専門家に質問してみよう