Ich habe eine spezielle Store-Front für eine mobile Version meiner Website erstellt. Wie leite ich dort mobile Geräte um und verlinke wieder zur Desktop-Site?


7

Ich habe gemäß diesem Tutorial einen speziellen mobilen Store / Store unter einer Subdomain eingerichtet - www.m.mydomain.com .

Ich wollte diesen Code in die Skripte "Verschiedenes" einfügen , damit das System erkennt , dass ein Kunde eine Verbindung von einem mobilen Gerät herstellt, und den Datenverkehr an www.m.mydomain.com weiterleitet :

Ich habe einen speziellen Responsive Mobile Store unter m.MYdomain.com. Wie kann Magento mobile Geräte erkennen und den Datenverkehr an m.Mydomain.com weiterleiten?

Aber jetzt denke ich, dass eine bessere Lösung darin bestehen könnte, die .htaccessDatei wie hier erklärt zu ändern .

Aber ich verstehe nicht, wo ich diesen Code ablegen soll? Außerdem - dieser Beitrag stammt aus dem Jahr 2010. Gibt es angesichts der Entwicklung bei Mobilgeräten und Tablets etwas Neueres?

Ich muss auch eine große Schaltfläche auf der mobilen Website (unter www.m.mydomain.com ) platzieren, mit der Kunden auf Wunsch zur Desktop-Version der Website ( www.mydomain.com ) weitergeleitet werden. Was ist der beste Weg das zu tun?

Ich meine - wie kann das funktionieren? Wird es nicht in einer Schleife stecken bleiben? Wenn der Kunde auf die Schaltfläche klickt, die ihn an www.mydomain.com sendet, erkennt das Skript dann nicht erneut, dass es sich um ein mobiles Gerät handelt, und überträgt den Datenverkehr zurück an www.m.mydomain.com ? Ich habe darüber gelesen, wie man es mit Cookies macht, aber wie genau? Und wie würde ich diesen Knopf einrichten?

Ich suche nach einer einfachen Lösung wie in: Nehmen Sie diesen Code und fügen Sie ihn hier ein. Ändern Sie diesen Code hier und Sie sind fertig! :Ö)

In meinem Beispiel lautet meine Desktop-Site: www.mydomain.com und mein Handy unter: www.m.mydomain.com, während mein Desktop-Store-Name und mein Store- Frontname : mydomain.com und mein Mobile-Store-Name und Store- Frontname lautet : mmydomaincom


Aktualisiert am 12. Dezember:

Bitte sag mir nicht, dass ich ein anderes Thema laden soll. Ich habe bereits ein schönes ansprechendes Thema! Das ist nicht das Problem. Der Grund, warum ich auf meine mobile Website (unter www.m.mysite.com) umleiten möchte, ist, dass ich auf meiner Desktop-Startseite ungefähr 50 Produkte und viele Dinge habe (z. B. Text, der von der SEO-Firma dort eingefügt wurde). Das nimmt nur Platz in Anspruch und ich muss diese Unordnung nicht auf Mobilgeräten anzeigen. Ich denke, dass die Bestellung auf einem mobilen Gerät schnell und einfach sein sollte, ohne unnötigen Müll. Das heißt - ich versuche hier nicht, das Rad neu zu erfinden. Ich brauche 2 Dinge.

1. Erkennen Sie das mobile Gerät und laden Sie in diesem Fall www.m.mysite.com anstelle von www.mysite.com

2. Fügen Sie eine Schaltfläche für Personen hinzu, die aus irgendeinem Grund (möglicherweise sind sie mit einer schnellen WLAN-Verbindung verbunden) entscheiden, dass sie stattdessen die Desktop-Version möchten, und lassen Sie sie funktionieren, wenn sie darauf klicken, um www.mysite.com anzuzeigen

Wenn Sie mit Ihrem Handy auf www.ebay.com gehen, wird auf "m.ebay.com" umgeleitet. Dies gilt auch für YouTube, Facebook, Twitter, LinkedIn ... Sagen Sie mir also nicht, dass dies ein Altersansatz ist. Wenn diese Milliarden-Dollar-Unternehmen es tun - es steckt eine Logik dahinter ...


stackoverflow.com/questions/3680463/… wpandsuch.com/… Sie müssen Cookie & Flag setzen, dann funktioniert es. Sie können sich auch auf Magento Default beziehen, .htaccessdas bereits
Ankit Shah

Hallo @Allysin Bitte teilen Sie die Lösung von diesem Link, den ich bereitgestellt habe.
Ankit Shah

Antworten:


1

0
<?php

$useragent=$_SERVER['HTTP_USER_AGENT'];

if(preg_match('/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i',$useragent)||preg_match('/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i',substr($useragent,0,4)))

header('Location: http://detectmobilebrowser.com/mobile');

?>

Im Header-Speicherort geben Sie die Store-URL des Mobilgeräts an


Das sieht gut aus. Platziere ich diesen Code in der .htaccess-Datei? Und wie würden Sie mit der Weiterleitung zurück zur Full Desktop-Version umgehen, wenn der Kunde dazu auf eine Schaltfläche klickt?
Allysin

Sie werden zur Desktop-Version umleiten, wenn der Benutzer auf die Schaltfläche
Jigs Parmar

und dieser Code wird in der .htaccess-Datei nicht verwendet. Sie setzen diesen Code in Header-Datei
Jigs Parmar

0

Sie sollten Ausnahmen für die mobilen Geräte hinzufügen. Navigieren Sie zu Magento administrative area -> System -> Configuration -> Design -> Themes. Klicken Sie auf die Schaltflächen Ausnahmen hinzufügen neben den Beschriftungen Vorlagen, Skin und Layout.

Und für die übereinstimmenden Ausnahmen hinzufügen **iPhone|iPod|BlackBerry|Palm|Googlebot-Mobile|Mobile|mobile|mobi|Windows Mobile|Safari Mobile|Android|Opera Mini**

Bei dieser Lösung wird davon ausgegangen, dass Sie ein anderes benutzerdefiniertes Thema für den Mobile Store haben


Richtig, aber dies berücksichtigt nicht die Frage, ob Kunden die Desktop-Site auf ihren Mobilgeräten anzeigen können, wenn sie dies möchten, da sie dadurch einfach zur mobilen Site zurückgeleitet werden.
Giel Berkers

@Vlad Patru Ich habe bereits ein ansprechendes Thema. Ich versuche NICHT, zu einem anderen Thema umzuleiten. Ich muss zu meinem Mobile Store weiterleiten = www.m.mysite.com Wenn es für Unternehmen wie eBay, YouTube, Facebook, Twitter, LinkedIn gut genug ist, ist es für mich gut genug. Ganz zu schweigen davon, dass ich viele, viele Produkte auf meiner Desktop-Startseite und zu viel unnötigen Text (SEO) habe und auf meiner mobilen Website nur 12 Produkte und keinen dieser nutzlosen Texte. Ich kann nicht glauben, dass es 2016 so schwer ist, ein mobiles Gerät zu erkennen, auf www.m.mysite.com umzuleiten und dort eine Schaltfläche zu platzieren, um zur Desktop-Version zurückzukehren
Allysin

Es ist nicht schwer, ein mobiles Gerät zu erkennen. Beachten Sie jedoch die Nebenwirkungen: Wenn Sie nach "Android" suchen, werden auch Android-Tablets angezeigt, die die Desktop-Variante vollständig anzeigen können. Sie können die Auflösung nicht serverseitig erkennen. Wenn Ihr Problem jedoch nur die vielen, vielen Produkte sind, laden Sie den Produktblock einfach mit einer XHR-Anfrage. Da dies mit JavaScript erledigt ist, können Sie die Auflösung erkennen und bestimmen, ob Sie einen großen oder einen kleinen Satz laden möchten.
Giel Berkers

0

Zunächst einmal dient der von Ihnen angegebene Link zum Einrichten eines Multisite- / Multi-Stores. Zum Beispiel, wenn Sie eine mehrsprachige Site haben; Es erkennt Muster im Domänennamen und legt den richtigen Speichercode fest, falls festgelegt.

Um Ihre zweite Frage zu beantworten: Der .htaccessCode von 2010 sollte noch funktionieren. Ich habe es noch nicht getestet, aber es ist nichts weiter als das Überprüfen des Benutzeragenten anhand eines regulären Ausdrucks, und seitdem hat sich nicht viel geändert.

Sie können also das zweite Beispiel verwenden, um die Umleitung festzulegen. Sie möchten jedoch in der Lage sein, zur Site zurückzuleiten, wobei die .htaccessRegel effektiv ignoriert wird.

Ich denke, Ihre beste Wette ist es, die Regel nicht zu verwenden .htaccess, sondern Magento die Weiterleitung gemäß dem Benutzeragenten zu überlassen. In diesem Artikel erfahren Sie, wie Sie dies einrichten.

Die zweite Herausforderung besteht darin, Magento dazu zu bringen, diese Weiterleitung zu ignorieren, wenn jemand den Link auf einem dieser Mobilgeräte explizit auswählt. Ich denke, Sie können dies am besten bewältigen, indem Sie den Code in Magento aufspüren, der die Umleitung verwaltet, und ein Modul erstellen, das diesen Code neu schreibt (oder wenn Sie Glück haben, gibt es dafür ein Ereignis). In Ihrem Modul können Sie dann überprüfen, ob Ihre URL ein Flag enthält (wie ?noredirectoder so), und der Benutzersitzung ein Flag hinzufügen, damit die Umleitung niemals ausgelöst wird.

Nein, es gibt keine "One-Line-Lösung" für das, was Sie erreichen möchten, aber wenn Sie wissen, wie man Magento verwendet, ist die Einrichtung nicht sehr schwierig.

Aber ... warum überhaupt eine mobile Website verwenden? Warum nicht Ihre Vorlage reaktionsschnell machen? Mobile Weiterleitungen oder so 2001 ...


Vielen Dank für das Schreiben Ihrer Antwort. Ich hoffe, dass es später Leute geben wird, die dies lesen und denen es helfen wird. In meinem Fall - ich habe eine reaktionsfähige Website, aber ich muss wirklich zu www.m.mydomain.com umleiten. Ich habe viele Gründe dafür - 1 ist, dass ich 48 Produkte auf meiner Startseite habe und diese auf einem Handy extrem langsam geladen werden mit nur einer mobilen Datenverbindung. 2. - Ich habe aufgrund von SEO viel bla bla Text auf meiner Desktop-Startseite, aber das ist für das Handy NICHT notwendig. Wenn Sie zu www.ebay.com gehen, wird es zu "m.ebay.com" weitergeleitet. Gleiches gilt für YouTube, Facebook, Twitter, LinkedIn.
Allysin

Siehe meinen Kommentar zu Vlads Antwort. Eine andere Möglichkeit besteht darin, Ihren Produktkatalog mit XHR-Anforderungen zu laden. "Blah blah blah" kann mit CSS leicht ausgeblendet werden (ich gehe davon aus, dass Ihr Text nicht Hunderte von Kilobyte groß ist). Aber wenn Sie wirklich die Umleitungsstraße nehmen möchten, müssen Sie immer noch ein Modell erstellen, um ein Flag in der Sitzung zu setzen, um eine Umleitungsschleife zu verhindern.
Giel Berkers

Ich kann sehen, dass Sie mit Magento sehr schlau sind. Was Sie sagen, macht tatsächlich Sinn, aber für mich wäre es tatsächlich schwierig, das Laden des Katalogs mit XHR-Anforderungen einzurichten und sogar Text mit CSS auszublenden. Ich versuche, so viel wie möglich im KISS-Modus (Keep It Simple, Stupid) zu arbeiten, und das Einrichten einer Subdomain mit einem anderen ansprechenden Thema und verschiedenen Produkten auf der Startseite ist der einfachste Weg (dies ist bereits geschehen). Ich bin immer noch nicht sicher, wie ich die Weiterleitung und den Link zurück einrichten soll :-( Ich wünschte, jemand könnte einfach ein 5-Stufen-Rezept für alle Leute da draußen machen, die dies versuchen
Allysin
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.