0

我创建了一个基于屏幕宽度的重定向。

该页面是 https://galleryofjewels.businesscatalyst.com/home

我希望重定向只发生一次,当手机在这里第一次遇到“家”时: https ://galleryofjewels.businesscatalyst.com/home

我正在将“主页”重定向到一个名为“about-us-mobile”的页面,该页面使用此 javascript 设计用于 480 或更小的屏幕宽度:

if (screen.width <= 480) {
    document.location = "about-us-mobile ";
}

我只有 2 个页面针对 480 或更少进行了优化,并且在这两个页面上都有一个链接“shop”返回到 galleryofjewels.businesscatalyst

我希望手机点击“shop”按钮可以看到完整的“主页”页面,而不会再次重定向到“about-us-mobile”。

所以我创建了一个页面,它是“主页”页面的副本,并将其命名为“home_full_site_shop”。它没有重定向。移动页面上的“商店”按钮链接到此页面。

如果手机最终尝试通过galleryofjewels.businesscatalyst任何页面上的“shop”按钮再次链接回主页,我希望它不要再次重定向到“about-us-mobile”。

简而言之,我希望重定向只发生一次,当手机第一次遇到galleryofjewels.businesscatalyst主页时

4

3 回答 3

1

如果您使用 JavaScript,最好的选择可能是使用 GET 变量,该变量在您的站点识别尺寸后设置。设置的此变量将向每个页面指示相关链接应转到移动优化页面(您可以根据此 GET 变量的存在 [或不存在] 动态创建链接)。您实际上可以通过这种方式避免两种重定向。只需在您网站内的每次点击时传递 GET 变量(这可以通过动态修改所有加载页面链接来完成)。

如果您还有服务器端选项(可能是 PHP),那么您有一个更漂亮的选项。您可以使用会话/cookie 来存储当前用户是否移动,并在会话设置后向 Web 浏览器发送适当的链接。

于 2012-07-26T02:47:54.347 回答
0

很简单,通过设置(法律术语:技术)cookie(不包含唯一信息)。

cookie 选项得到了很好的跨浏览器支持并且有据可查(除非用户将其关闭,由于诸如合谋之类的意识工具,目前非常流行)。在这种情况下,如果您没有一些回退机制或优雅降级,那么用户就会遇到“问题”。
如果您还依赖 javascript,那么您的网站有 2 个要求:cookies 和 javascript。
因此,尽管 javascript/cookie 路由很容易实现,但从长远来看,进一步研究并没有什么坏处:

或者你可以潜入本地网络存储与它当前的所有怪癖

您可以使用基于 IP 的数据库或类似的东西将它记录在您的服务器上。

另一种选择是(如果您仍然呈现 html 服务器端)重写/更改文档和脚本中的所有链接(使用 GET 变量)......
或者 .htaccess mod-rewrite..?

我很高兴...
您还可以使用 2 个子域:在前门抓住用户,将他们重定向到您的分辨率/应用程序特定的子域,然后使用 javascript-function history.replace( ); 这样用户就无法在历史中导航回“前门”,因此他最终被困在子域的根目录中。

多田:P

因此,对这一要求的适当长期解决方案从做出选择开始。

于 2012-07-26T02:44:30.470 回答
0
if (window.innerWidth <= 480) {
    window.location = "https://galleryofjewels.businesscatalyst.com/home";
}
于 2012-07-26T02:53:30.333 回答