Javascript 手机浏览器上奇怪的网站重定向问题';它受缓存的影响

Javascript 手机浏览器上奇怪的网站重定向问题';它受缓存的影响,javascript,wordpress,caching,hosting,mobile-website,Javascript,Wordpress,Caching,Hosting,Mobile Website,我在这里不知所措 我在Synergeration.com有一个新的Wordpress网站 如果您在移动设备(手机,而不是平板电脑)上访问它,它通常会在第一时间正常加载。一旦你点击到另一个页面和/或重新加载主页,它就会无限期地跳入重定向循环,试图一次又一次地重新加载同一页面 我已经对代码进行了筛选,找不到任何JS重定向。我还联系了主题开发者,他们无法提供帮助 当我开始在WP引擎上托管时,这才成为一个问题。他们使用了一些高级缓存,这似乎是罪魁祸首,因为当我在他们的暂存服务器(不存在缓存)上测试移动站

我在这里不知所措

我在Synergeration.com有一个新的Wordpress网站

如果您在移动设备(手机,而不是平板电脑)上访问它,它通常会在第一时间正常加载。一旦你点击到另一个页面和/或重新加载主页,它就会无限期地跳入重定向循环,试图一次又一次地重新加载同一页面

我已经对代码进行了筛选,找不到任何JS重定向。我还联系了主题开发者,他们无法提供帮助

当我开始在WP引擎上托管时,这才成为一个问题。他们使用了一些高级缓存,这似乎是罪魁祸首,因为当我在他们的暂存服务器(不存在缓存)上测试移动站点时,它可以正常加载

我就此联系了WPEngine,他们的答复如下:

这是由我们平台上运行的缓存系统造成的。 主题似乎正在处理一个内部重定向,该重定向检测 用户代理(桌面或移动)并将访问者重定向到 基于该信息的适当站点。但是,重定向是无效的 卡在缓存中,导致移动版本加载到 无限循环。不幸的是,我们没有一个简单的解决方案。 如果这只是网站的一部分,我们可以免除这一部分 从缓存中删除站点的所有内容,但因为它覆盖了整个站点, 免除缓存不是一个选项。我们的集结地是免税的 从所有缓存,这就是为什么它在那里正常工作。(旧的 主机很可能使用非缓存环境,这就是为什么 没有看到这个问题)。我会联系主题开发者和 问问他们以前是否遇到过这个问题。这是一个好消息 他们有机会,他们可能会有一个聪明的解决方案 解决问题。您可以选择禁用手机 路由,这将解决重定向问题,虽然移动设备 将加载网站的完整版本,而不是精简版 手机版


如上所述,主题开发人员没有任何解决方案,我又回到了起点,所以我想我应该去stack看看你是否有什么想法。

它在我手机的Opera迷你浏览器中运行得非常好。要回答您的问题,另一种方法是创建一个移动子域,如m.yourdomain.com。将此决定公之于众,并让移动用户提前知道这是移动用户的网站。一个特定的移动站点比访问页面然后被重定向要好。这也节省了时间

在开发移动站点时,请记住,使用最少的JavaScript。原因是,旧的移动版本可能不支持JavaScript,如果JavaScript是必需的,那么它就成了一个大问题

说到主题,如果它被卡住了,开发人员不知道,那么现在最好的选择就是更改模板。让开发人员检查自己的代码。到那时,你可以使用另一个模板,这将保持网站运行良好,无论它是在移动或任何东西。因为,小错误会转移站点的大量流量。一、 坦率地说,我不知道WP有什么缓存问题,我也不希望这里的任何人知道这一点,所以这取决于时间。在那之前,正如我所说的,暂时尝试使用其他模板


祝你一切顺利

我在WP引擎上有两个带重定向的站点。它们是相同的gensis子主题和重定向插件。我有一个设置,DNS重定向到“M.sitename.com”URL的cname记录,另一个重定向到移动站点,该移动站点存在与上面提到的问题相同的问题。我对指向cname记录的站点没有任何问题。我正在考虑将另一个站点更改为cname配置,看看这是否会有所不同。我不知道这为什么有效,但我想你可能会发现这很有价值

我最近也遇到了类似的问题。这花了很长时间,但我终于弄明白了


要防止缓存重定向,必须使用302重定向。此外,您已经在wordpress的“模板重定向”操作中初始化了此重定向。如果你像“init”那样做,它也会被缓存。

我感谢你的评论。不幸的是,我花了数百小时修改和增强这个模板。换掉它根本不是一个选择。我确实看到它在Opera Mini中可以工作——我的手机上没有安装OM——但我知道它在iPhone Safari和Android Chrome(以及本机Android浏览器)上失败.我们仍然不知道问题出在哪里,但在评论大量特定于移动设备的JS代码和WPEngine可能的调整之间,问题似乎已经消失了。杰夫,我会给你分数,因为你是第一个做出回应的人。谢谢