Moovweb SDK を使用して Web サイトのモバイル化に取り組んでいますが、モバイル用に変更したくないセクションがあります。これらのリンクが元のデスクトップ サイトを指すように強制するにはどうすればよいですか?
2 に答える
これを行うには、指定されたリクエストをリダイレクト リクエストに変更してから、デスクトップ Web サイトにリダイレクトすることをトリチウムに伝えます。
ミキサーのシンプルモバイル バージョン 1.0.224 以降では、これを行うためのヘルパー関数があります。
redirect_temporary("www.desktop.com") # 302 redirect.
redirect_permanent("www.desktop.com") # 301 redirect.
URL パスに「デスクトップ」という単語が含まれている場合の一時的なリダイレクトの例を次に示します。
match($path) {
with(/desktop/) {
redirect_temporary("www.desktop.com")
}
else() {
// normal transformations.
}
}
理想的には、redirect_* 関数を呼び出した後は、それ以上トリチウムを実行しないでください (とにかくリダイレクトするので意味がありません)。
これに関する問題の 1 つは、www.desktop.com でロード バランサーをセットアップして、モバイル ユーザー エージェントが検出された場合に www.mobile.com にリダイレクトする場合です。その場合、無限のリダイレクト ループに陥ります。
これをバイパスするかどうかは、セットアップによって大きく異なります。これに対する既存の解決策は知りませんが、実験的なアプローチの 1 つは、クライアント側に Cookie を設定し、値をリダイレクトしたくない URL にすることです。ロード バランサーがこの Cookie を認識し、リクエスト パスが Cookie の値と一致する場合、リダイレクトは回避されます。
上記のシナリオを達成したい場合は、次のようにトリチウムでこれを行うこともできます。
match($path) {
with(/desktop/) {
add_cookie("avoid_redirect", $path, "www.desktop.com")
redirect_temporary("www.desktop.com")
}
else() {
// normal transformations.
}
}
次に、ロード バランサーで、avoid_redirect Cookie を確認し、Cookie の値のパスが要求されたパスである場合、モバイルへのリダイレクトを回避する必要があります。
それでも URL を「m.mysite.com」にしたい場合、これを行う最善の方法は次の方法です。scripts/main.ts
後:
match($detected_content_type) {
with(/html/) {
あなたが入れる必要があります:
match($path) {
with(/non_mobile_page_here/) {
# do nothing!
}
else() {
# put the rest of the html scope in here.
}
}