2011-01-21 8 views
3

モバイルユーザーが自分のサイトを閲覧すると、モバイル版にリダイレクトされます。私は代わりに実際のサイトを見ることができるようにするために "view full"オプションを持っています。問題は彼らがリダイレクトされるときです。初めてリダイレクトするか、リダイレクトするだけですか?モバイルユーザーがリダイレクトをバイパスできるようにするにはどうすればよいですか?

答えて

5

私が知る限り、ほぼすべてのモバイルブラウザは基本的なクッキーをサポートしています。 MOBILEは、事前に定義されている

setcookie('default_view', MOBILE); 

:PHP setcookiedocumentation here)は、あなたがこのような何かをすることができます。ここで文字列を自由に使用することもできます。

このクッキーが設定されると、クエリ文字列について心配する必要はありません。 SLaks 'の解決策はうまくいくが、リダイレクトチェッカーを持つすべてのURLにredirect=falseを追加するように注意する必要があります。

+0

モバイルデバイスはCookieを保存しています。 – dcp3450

+0

私は質問が何であるか正確にはわかりません。明確にしていただけますか? –

+0

私はセッションを使ってそれをやった。私はHTTP_REFERERをチェックして、私たちのモバイルアドレスがstrposを使ってアドレスに入っているかどうかを確認します。そうであれば、私はセッション値を設定します。セッションがまだアクティブであれば、フルサイトを使用できます。彼らがモバイルサイトに戻ると、セッションは破棄されます。完璧に動作します! – dcp3450

2

?redirect=falseなどのクエリ処理を追加できます。
リダイレクトする前に、このクエリ文字列を確認してください。

+0

既存のリンクをリファクタリングする必要がないように、このクエリ文字列を(サーバー設定ファイルなどで)保持する方法はありますか? –

+0

@スティーブン:それはどういう意味ですか? (クッキーを使用している以外) – SLaks

+0

アプリケーションコードがホームページに戻ってくるリンクがたくさんあるとします(ここでは、リダイレクトはホームページへのリクエストに対してのみ行われます)。手動ですべてのリンクに戻って、リクエスト文字列が渡された場合は 'redirect = false'を追加する必要はありませんか? –

1

SLaksの回答に追加すると、 'redirect = false'というCookieを追加できます。これは、すべてのリンクにGETパラメータを設定する必要がないため、内部リンクをたどっても通常のページに留まるという利点があります。

+0

[クッキー]クッキーが利用可能であることに頼らないでください。 http://www.w3.org/TR/mobile-bp/#d0e1925より 多くの古い携帯電話にはCookieがありません。 – Christa

+0

@Christa:確かに、クッキーに頼っているのは良い考えではありません。しかし、それはほとんどの時間で動作し、実装するのに十分簡単です。 – Boldewyn

0

データベースを使用していることをお勧めします。誰かがあなたのサイトに入ると、すべてのユーザーのIPとそのサイトのバージョンを書きます。

| _ __ _ ID _ __ _ __ | |サイトバージョン|

| 88.75.125.xxx |ノーマル|

| 93.108.111.xxx |モバイル|

ユーザーがバージョンを変更すると、適切なIDを編集できます。

+0

モバイルユーザーは、実際にはプロキシの背後にあるプライベートネットワーク上にあることがよくあります。したがって、あなたは同じIPを持つ多くの異なるユーザーを持っています... – Twister

+0

@Twister;あなたが正しいです。私はそれを考えなかった。 – borayeris

1

セッションを使用して行っています。私はHTTP_REFERERをチェックして、私たちのモバイルアドレスがstrposを使ってアドレスに入っているかどうかを確認します。そうであれば、私はセッション値を設定します。セッションがまだアクティブであれば、フルサイトを使用できます。彼らがモバイルサイトに戻ると、セッションは破棄されます。完璧に動作します!

関連する問題