PHP:ベストリダイレクト手法

私は現在、優れたモバイル検出スクリプトを使用しています:detectmobilebrowsers.mobi

これは本当にうまく動作しますが、メインサイトのすべてのページ(任意のクエリパラメータを含む)をモバイルサイトのホームページにリダイレクトします。

私が必要とするものは次のとおりです。

http://www.mydomain.com/page.php?var1=X&var2=Y

への指示:

http://mobile.mydomain.com/page.php?var1=X&var2=Y

私はそれらのモバイルバージョンにクエリ文字列でリダイレクトする必要がある複数のページがあります。

これに最も近いアプローチは何ですか?私は次のようにすべきだと思った:

ページとクエリ文字列の$ _SERVER ['HTTP_REFERER']を確認し、スイッチ/ケースを使用してメインページとモバイルサイトで照合が必要な10ページをループし、モバイル検出スクリプトのリファラーURLを変更します。

これは理にかなっていますか?

私はページとクエリを取得するために苦労している...任意の助言や考えを歓迎します。

1

3 答え

if ($mobile_is_detected) {
    header('Location: http://mobile.mydomain.com' . $_SERVER['REQUEST_URI']);
    exit;
}
3
追加された
Andy、ありがとう、いつものように、私が思っていたよりも解決が簡単です。私はちょうど特定のページのためにこれを行うためにいくつかのコードを追加する必要があります。どうもありがとう。
追加された 著者 mattl,

Andyの回答に加えて、リダイレクトするときには、応答ステータスを301に設定する必要があります。

関数を呼び出す前に何かHTMLや echo を印刷した場合は、 header()を呼び出さないように注意してください。

if ($mobile_is_detected) {
    header('HTTP/1.1 301 Moved Permanently');
    header('Location: http://mobile.mydomain.com' . $_SERVER['REQUEST_URI']);
}
2
追加された
301は、Webページが永久に移動したことをブラウザに伝えることです。 Googleなどの検索エンジンからのインデックス作成に適しています。それは、あなたがあなたのウェブページを移動した後でさえも、あなたがグーグルのランク付けを維持するのに役立ちます。ユーザーにメインサイトに戻る機会を与えたい場合は、 header( 'HTTP/1.1 302 Moved Temporarily');
追加された 著者 Dimme,
はい、検索エンジンはモバイルユーザーエージェントを返さない限り影響を受けません。その場合は、影響を受けるようにしてください。
追加された 著者 Dimme,
ありがとうDimme。なぜ301の必要性?私はモバイルユーザーが好きならメインサイトに戻ることを選ぶことを許可します...
追加された 著者 mattl,
はい、分かりました。このスクリプトはモバイルをリダイレクトするだけで、検索エンジンはインデックス作成のメインサイトに進む必要があります...
追加された 著者 mattl,

$ SERVER ['QUERY_STRING'] を使用して、最初にリダイレクトURLにクエリ文字列を追加することができます。

0
追加された
ありがとう、それを試みたが参照ページから変数を表示するページを取得できませんでした。グローバル設定を変更する必要はありますか?
追加された 著者 mattl,
PHP - 日本のコミュニティ [ja]
PHP - 日本のコミュニティ [ja]
4 参加者の

このグループではPHPについて話します。 パートナー:kotaeta.com