”携帯振り分けPHP”で携帯サイトとパソコンサイトを振り分けています。
http://www.○○○.com/ にアクセスすると
ソフトバンクからアクセスすると、
http://www.○○○.com/softbank.html
パソコンからアクセスすると、
http://www.○○○.com/pc.html
に振り分けられています。それまでは良いのですが、
ソフトバンクから
http://www.○○○.com/pc.html にアクセスすると
http://www.○○○.com/pc.html のページが見れてしまうし!!
パソコンから
http://www.○○○.com/softbank.html にアクセスすると
http://www.○○○.com/softbank.html のページが見れてしまいます!!
ソフトバンクから、pcのページにアクセスしたなら、ソフトバンクのページを表示させたいし、
パソコンから、ソフトバンクのページにアクセスしても、pcのページが表示されるようにするにはどうすれば可能でしょうか?宜しくお願いします。
A 回答 (6件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
少し落ち着きましょうね。
ちなみに、「見れない」じゃなくて「見られない」が正しい表記です。いわゆる「ら抜き言葉」はこういう場では控えましょうね。さて、本題。静的ファイルに直接アクセスしたら、携帯だろうがPCだろうがそのページが表示されるのは素人でもわかると思います。だから、全てのファイルをphpファイルにして、ユーザエージェントによる自動振り分けを共通関数で行えば解決します。
ちなみに、その「携帯振り分けPHP」というのは、「http://www.○○○.com/」に接続したときにユーザエージェントで振り分ける仕組みだと思いますが、その正体は「index.php」ではないですか?これは、あくまでPCでも携帯でも同一URLが使えることを保障しているだけで、振り分けた先のことまで面倒は見てくれません。使う前に、ReadMeなどをよく読みましょう。
この回答への補足
丁寧なご回答ありがとうございます。
>全てのファイルをphpファイルにして、ユーザエージェントによる自動振り分けを共通関数で行えば解決します。
pc.html →pc.php softbank.html→softbank.php au.html→au.php docomo.html→ docomo.php にしてindex.phpと一緒にサーバーに転送すれば良いと言うことですよね?しかしながら結果は同じでした。
>振り分けた先のことまで面倒は見てくれません。
そのようですね!問題なく振り分けされています!
>静的ファイルに直接アクセスしたら、携帯だろうがPCだろうがそのページが表示されるのは素人でもわかると思います。
素人でもわかるような当然の現象でしたか(^^;
私が理想としているような・・・
・携帯からパソコンのサイトアドレスにアクセスした場合に、アクセスしたのは携帯だから携帯のページへ!
・パソコンから携帯のアドレスにアクセスした場合には、アクセスしたのはパソコンだからパソコンのページへ!
というような振り分けまでしてくれる設定方法、またはプログラムはございますでしょうか?
No.3
- 回答日時:
>・携帯からパソコンのサイトアドレスにアクセスした場合に、アクセスしたのは携帯だから携帯のページへ!
>・パソコンから携帯のアドレスにアクセスした場合には、アクセスしたのはパソコンだからパソコンのページへ!
>というような振り分けまでしてくれる設定方法、またはプログラムはございますでしょうか?
ユーザエージェントの偽装を無視するレベルで、PCと3キャリア+Willcomの振り分け関数を自作しましたよ。ユーザエージェントの仕様さえ知っていればすぐに作れますので、がんばって作ってみてください。念のため、ヒントをいくつか与えておきます。
・$_SERVER['HTTP_USER_AGENT']を調べる!
・「HTTP_USER_AGENT 携帯」で検索!
・「携帯振り分けPHP」のindex.phpのソースを熟読!
No.4
- 回答日時:
おっと、ひとつ書き忘れていました。
>pc.html →pc.php softbank.html→softbank.php au.html→au.php docomo.html→ docomo.php にしてindex.phpと一緒にサーバーに転送すれば良いと言うことですよね?
多分、想像されていることと当方の回答には大きな隔たりがあります。貴殿はHTMLとPHPの違いを理解されていないようですね。単純に拡張子を変えるだけで自動的に振り分けてくれるわけがないでしょう。すぐに楽な方向に考えるようでは、先が思いやられます。
仕方ないので正解を教えます。
まず、共通関数ライブラリとして「common.php」を作り、そのファイルにPCと携帯を振り分ける関数を自作します(check_ua()関数と名づけます)。
ここで、check_ua()関数は、PC,d,a,s,wのいずれかを戻り値にとると約束します。
次に、index.phpをこのように書き換えます。
<?php
include_once("common.php");
$ua = check_ua();
switch($ua){
case "PC":
// PC用のページをinclude
include("pc.html");
break;
case "d":
// docomoC用のページをinclude
include("docomo.html");
break;
case "a":
// au用のページをinclude
include("au.html");
break;
case "s":
// softbank用のページをinclude
include("softbank.html");
break;
case "w":
// Willcom用のページをinclude
include("willcom.html");
break;
}
最後に、これをテンプレートとして、他のファイルも同様に作ります。
No.5
- 回答日時:
静的なページを対象にしているしているので
PHPとは無関係の回答になってしまいますが
.htaccessの設定が可能なサーバーを利用しているのなら
mod_rewriteを使うのが楽でしょう。
以下のコードを .htaccessに記入しておけば、勝手に振り分けられます。PCの場合は、index.htmlが開きます。
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} DoCoMo
RewriteRule ^$ /docomo.html [R]
RewriteCond %{HTTP_USER_AGENT} J-PHONE
RewriteRule ^$ /softbank.html [R]
RewriteCond %{HTTP_USER_AGENT} Vodafone
RewriteRule ^$ /softbank.html [R]
RewriteCond %{HTTP_USER_AGENT} SoftBank
RewriteRule ^$ /softbank.html [R]
RewriteCond %{HTTP_USER_AGENT} UP.Browser
RewriteRule ^$ /au.html [R]
この回答への補足
アドバイスありがとうございます。PHPを利用することで振り分けまでは出来ているんです。
PHPを利用せずに.htaccessを利用することで、、
・携帯からパソコンのサイトアドレスにアクセスした場合に、アクセスしたのは携帯だから携帯のページへ!
・パソコンから携帯のアドレスにアクセスした場合には、アクセスしたのはパソコンだからパソコンのページへ!
の設定も可能になるのでしょうか?
No.6
- 回答日時:
>> PHPを利用せずに.htaccessを利用することで、、
>> ・携帯からパソコンのサイトアドレスにアクセスした場合に、アクセスしたのは携帯だから携帯のページへ!
>> ・パソコンから携帯のアドレスにアクセスした場合には、アクセスしたのはパソコンだからパソコンのページへ!
>> の設定も可能になるのでしょうか?
もちろん出来ます。PHPなどのスクリプトを使わないのでhtmlなど静的なページにも対応できます。
先回記載した例では、携帯でどのページにアクセスしてもその携帯会社別のページを表示する例でした。PCで携帯用のページをアクセスしたときにPC用のページに飛ばすにはもう少し設定の追加が必要ですが・・
設定方法はいろいろ有るので、「RewriteEngine 携帯 PC 振り分け」でググって見てください。豊富に事例が見つかるはずです
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(ブラウザ) このページは動作していません HTTP ERROR 401 2 2022/11/28 12:11
- SoftBank(ソフトバンク) 詳しい方教えて下さい。 ソフトバンクの携帯を使用しています。 マイソフトバンクに、アプリ、Chrom 3 2022/08/06 00:58
- SEO googleサーチコンソールで、重複URLが多数発生、その修正方法について 2 2023/06/23 16:15
- SSL・HTTPS httpとhttpsの安全性のちがいについておしえてください 3 2022/11/18 22:51
- SSL・HTTPS 至急教えてください! このサイトへの接続はセキュリティで保護されていません といった内容がPCに表示 1 2022/09/27 22:37
- ネットワーク 自分のPC(ローカル環境)から,Webページにアクセスする過程についての質問です。 1 2023/03/19 23:00
- その他(インターネット接続・インフラ) ブラウザにIPアドレス入力した時 1 2022/06/16 19:08
- VPN DNS「8.8.8.8」とは何なのでしょうか? 固定 IP アドレスで光回線の代わりに使えますか? 4 2022/10/17 16:30
- Google Drive googleドライブ 共有フォルダ 表示 されない 2 2023/07/06 10:37
- その他(IT・Webサービス) 301リダイレクトの使い方について 7 2022/04/05 17:50
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
HTMのファイルをPHPに変換す...
-
phpで大量のhtmlを任意の順番で...
-
index.phpって何ですか? 具体...
-
public_htmlと同じ階層にあるフ...
-
HPを開くとダウンロードページ...
-
phpのheader関数でページ移動さ...
-
VScode文字の色の変更について
-
トップページURLのみで下層ペー...
-
いいかげんxamppなんとかしたい...
-
フォントの色を変えるには?
-
onedrive にexcelファイルをア...
-
<大至急!>ご教授願います。
-
メレンゲの歴史
-
PHPのif文でその処理を途中で抜...
-
VBSの「MsgBox」について
-
こちらはただの直列処理ですか?
-
トランザクションが原因?DBに...
-
リンク先を隠す方法はないでし...
-
FTPコマンドでディレクトリごと...
-
CFileDialogの最初のディレクト...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
index.phpって何ですか? 具体...
-
HPを開くとダウンロードページ...
-
社内イントラネットのHPにアク...
-
PHP4対応のサーバーではinclude...
-
PHPをhtmlに読み込んだファイル...
-
携帯サイト作成する場合の.htac...
-
phpで大量のhtmlを任意の順番で...
-
public_htmlと同じ階層にあるフ...
-
sitemap.xmlファイル自動生成の...
-
拡張子をhtmlにすることのメリ...
-
phpコードの戻り値をhtmlファイ...
-
PHP 正規表現について教えて下さい
-
phpでjarファイルを実行したい
-
phpのheader関数でページ移動さ...
-
php excelダウンロード
-
htmlのテンプレートの使いまわし
-
ブラウザでPHPのソースを見る方法
-
file_get_contentsでcss読み込み
-
かなり重い処理をする方法
-
プログラムの記述のあるPHPファ...
おすすめ情報