我应该将移动检测放在 .htaccess 或 php 中的哪个位置?

Posted

技术标签:

【中文标题】我应该将移动检测放在 .htaccess 或 php 中的哪个位置?【英文标题】:Where should I put the Mobile detection in .htaccess or php? 【发布时间】:2011-12-16 14:01:21 【问题描述】:

我的网站现在有一个移动版本,我想知道我应该在哪里进行重定向。我只能考虑使用以下方法进行重定向:

.htaccess php

我想知道哪个更好/更有效?除了 .htaccess 或 PHP 之外,还有更好的方法吗?

谢谢

【问题讨论】:

apache配置会更好吗? 【参考方案1】:

我投票给 Apache。

如果您在 Apache 级别执行此操作(在 .htaccess 文件中,或者更好的是在 Apache 配置中),那么如果您有 html 文件,我能想到的唯一检测方法是 javascript;这可以很容易地删除(比如禁用 JavaScript)。

这也适用于其他类型的文件,如 PDF、Word 文档、MP3 文件等。它可以轻松重定向到包含“不可用于移动设备”消息的页面。

如果它们不同(标准版与移动版),我能想到的另一件事是 css 文件。

【讨论】:

关于 CSS 点:您可以使用具有不同 media 属性标签的多个 CSS 样式表。例如,您可以有一个<link rel="stylesheet" type="text/css" href="normal.css"> 和一个<link rel="stylesheet" type="text/css" media="handheld" href="mobile.css">。有关更多信息,请参阅this link。【参考方案2】:

绝对是 PHP。您应该允许客户端从移动版切换到完整版再返回,这样会涉及到一些 cookie。

最好在www.example.com 上运行完整版,在不同子域m.example.com 上运行移动版

【讨论】:

【参考方案3】:

通过在 PHP 中执行此操作,您可以进行一些自动调整以优化移动查看器的相同内容,而不必拥有完全不同的内容副本。 This article on mobile-friendly PHP design 提供了一些细节。您可能不想遵循它提供的所有提示,因为它是从移动数据速度意味着最小图像最好的时代开始的,但它可以为您提供有关可用于进行调整的方法的想法。

基本上,它相当于创建一个函数,以对您的站点最有意义的方式调整 HTML 输出。然后,您将该函数放入一个文件中,该文件通过 .htaccesss 包含在每个页面中(所以我猜您有点同时使用 PHP 和 .htaccess)。其中一部分是使用ob_start(); 在加载时在页面输出上运行该函数。

【讨论】:

以上是关于我应该将移动检测放在 .htaccess 或 php 中的哪个位置?的主要内容,如果未能解决你的问题,请参考以下文章

.htaccess文件应该放在哪个文件夹下

如何检测安卓设备的移动?

检测设备前后移动

.htaccess 将子域重定向到外部 URL

根据 .htaccess 中的域/子域更改 DirectoryIndex

Htaccess:从URL添加/删除尾部斜杠