【问题标题】:.htaccess code for Desktop ->Mobile | Mobile -> Desktop?.htaccess 代码用于桌面 -> 移动 |移动 -> 桌面?
【发布时间】:2020-11-04 11:58:46
【问题描述】:

我已经搜索了一整天的 stackoverflow,发现代码仅适用于重定向桌面 -> 移动设备,有时有效,有时无效:

RewriteCond %{QUERY_STRING} !^desktop
RewriteCond %{HTTP_USER_AGENT} "android|blackberry|googlebot-mobile|iemobile|iphone|ipod|#opera mobile|palmos|webos" [NC]
RewriteRule ^$ https://www.example.com/m/ [L,R=302]

无论如何,我找不到任何用于重定向移动 -> 桌面的有效解决方案。

任何人都可以分享.htaccess 的工作解决方案以重定向https://www.example.com ---> https://www.example.com/m/ 用于移动设备和https://www.example.com/m/ ---> https://www.example.com/ 用于桌面用户。

谢谢。

【问题讨论】:

    标签: regex apache .htaccess redirect mod-rewrite


    【解决方案1】:

    您可以尝试以下 2 条移动重定向规则 -> 桌面重定向:

    RewriteEngine On
    
    RewriteCond %{HTTP_ACCEPT} "text\/vnd\.wap\.wml|application\/vnd\.wap\.xhtml\+xml" [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} "sony|symbian|nokia|samsung|mobile|windows ce|epoc|opera" [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} "mini|nitro|j2me|midp-|cldc-|netfront|mot|up\.browser|up\.link|audiovox"[NC,OR]
    RewriteCond %{HTTP_USER_AGENT} "blackberry|ericsson,|panasonic|philips|sanyo|sharp|sie-"[NC,OR]
    RewriteCond %{HTTP_USER_AGENT} "portalmmm|blazer|avantgo|danger|palm|series60|palmsource|pocketpc"[NC,OR]
    RewriteCond %{HTTP_USER_AGENT} "smartphone|rover|ipaq|au-mic,|alcatel|ericy|vodafone\/|wap1\.|wap2\.|iPhone|android"[NC]
    RewriteRule ^ - [E=MOBILE:1]
    
    # desktop -> mobile
    RewriteCond %{QUERY_STRING} !^desktop [NC]
    RewriteCond %{ENV:MOBILE} =1
    RewriteRule ^ /m%{REQUEST_URI} [L,NE,R=302]
    
    # mobile -> desktop
    RewriteCond %{QUERY_STRING} ^desktop [NC,OR]
    RewriteCond %{ENV:MOBILE} ^$
    RewriteRule ^m/(.*)$ /$1 [L,NC,NE,R=302]
    
    

    【讨论】:

    • 谢谢,它可以进行移动 -> 桌面重定向。重定向桌面 -> 移动设备不起作用。无论我访问的是https://www.example.com/ 还是https://www.example.com/m/,它总是在PC 和移动设备上重定向到https://www.example.com/
    • 结果是一样的。我在桌面和智能手机 Chrome 上测试它,每次清除 cookie、历史记录等。
    • 好的,你能试试我禁用缓存的更新规则吗
    • 我总是清除 cloudflare 的缓存两次 :) 现在在桌面 -> 移动设备上出现错误:m/m/m/m/m/m/m/。移动->桌面工作
    【解决方案2】:

    我刚刚发现了问题。 发现 Cloudflare 本身有移动重定向选项。 因此,在子域上创建了一个移动站点,在 CF 上启用了移动重定向到该子域。 在根域和子域上启用“缓存所有内容”。 从 .htaccess 中删除了重定向规则。 现在我有正常的 TTFB 并且移动流量重定向正在工作。 只有桌面 -> 移动 - 会很好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-30
      • 2016-02-19
      • 2012-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-12
      相关资源
      最近更新 更多