.htaccess桌面版->移动版的代码|手机->桌面?

时间:2020-11-04 11:58:46

标签: regex apache .htaccess redirect mod-rewrite

我整天都在搜索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]

无论如何,我找不到任何有效的解决方案来重定向Mobile-> Desktop。

任何人都可以共享.htaccess的工作解决方案来进行重定向,https://www.example.com ---> https://www.example.com/m/用于移动设备,https://www.example.com/m/ ---> https://www.example.com/用于台式机用户。 / p>

谢谢。

2 个答案:

答案 0 :(得分:1)

您可以尝试以下两种针对移动设备的重定向规则->桌面重定向:

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]

答案 1 :(得分:1)

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