如何解决手机和pc两个独立系统不同地址自动切换?

分类:Apache,问题集 | 作者:凹凸曼 | 发表于2015/11/12 如何解决手机和pc两个独立系统不同地址自动切换?已关闭评论

之前做手机版的程序需要实现与PC系统不同地址之间切换。

再说现在手机版的流行了,有些系统可能不想在传统系统上再开发。独立出来更明确一些,依然数据共享。

手机版和PC版块切换方式可能部分人采用前端JS 来处理,

个人喜欢用服务端rewrite 。(当然前提条件是不在一个系统上,一个系统上就不需要这些了,程序判断,多做一套模板了)

假设依我博客为案例:

www.apoyl.com:站点默认代表PC系统域名

m.apoyl.com:代表独立的手机域名地址

1、PC地址 http://www.apoyl.com/ 对应 手机地址http:// m.apoyl.com//app/index

2、文章页面PC地址 http://www.apoyl.com/?p=1977  对应 手机地址http:// m.apoyl.com//app/view?p=1977

3、列表页面PC地址 http://www.apoyl.com/?cat=5 对应 手机地址http:// m.apoyl.com//app/list?p=cat

httpd.conf 配置如下:

<Directory “/data/DocumentRoot/default”>
Options FollowSymLinks
AllowOverride None

Require all granted
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.apoyl.com(.*)$ [NC]
RewriteCond %{HTTP_REFERER} !^http\:\/\/(m|www)\.apoyl\.com(.*)$ [NC]
RewriteCond %{HTTP_USER_AGENT} !ipad [NC]
RewriteCond %{HTTP_ACCEPT} “text/vnd.wap.wml|application/vnd.wap.xhtml+xml” [NC,OR]
RewriteCond %{HTTP_USER_AGENT} “acs|alav|alca|amoi|audi|aste|avan|benq|bird|blac|blaz|brew|cell|cldc|cmd-” [NC,OR]
RewriteCond %{HTTP_USER_AGENT} “dang|doco|erics|hipt|inno|ipaq|java|jigs|kddi|keji|leno|lg-c|lg-d|lg-g|lge-” [NC,OR]
RewriteCond %{HTTP_USER_AGENT} “maui|maxo|midp|mits|mmef|mobi|mot-|moto|mwbp|nec-|newt|noki|opwv” [NC,OR]
RewriteCond %{HTTP_USER_AGENT} “palm|pana|pant|pdxg|phil|play|pluc|port|prox|qtek|qwap|sage|sams|sany” [NC,OR]
RewriteCond %{HTTP_USER_AGENT} “sch-|sec-|send|seri|sgh-|shar|sie-|siem|smal|smar|sony|sph-|symb|t-mo” [NC,OR]
RewriteCond %{HTTP_USER_AGENT} “teli|tim-|tosh|tsm-|upg1|upsi|vk-v|voda|w3cs|wap-|wapa|wapi” [NC,OR]
RewriteCond %{HTTP_USER_AGENT} “wapp|wapr|webc|winw|winw|xda|xda-” [NC,OR]
RewriteCond %{HTTP_USER_AGENT} “up.browser|up.link|windowssce|iemobile|mini|mmp” [NC,OR]
RewriteCond %{HTTP_USER_AGENT} “symbian|midp|wap|phone|pocket|mobile|pda|psp” [NC]
RewriteCond %{HTTP_USER_AGENT} !macintosh [NC]
RewriteRule ^(.*)index.php(.*)$ http://m.apoyl.com/app/view$2 [L,R=302]
RewriteCond %{HTTP_HOST} ^www\.apoyl\.com(.*)$ [NC]
RewriteCond %{HTTP_USER_AGENT} “(baidu.Transcoder|mini|android|blackberry|googlebot-mobile|iemobile|Mobile|ipad|iphone|ipod|opera mobile|palmos|webos|ucweb|Windows Phone|Symbian|hpwOS)” [NC]
RewriteRule ^(.*)index.php(.*)$ http://m.apoyl.com/app/list$2 [L,R=302]
RewriteCond %{HTTP_HOST} ^www\.apoyl\.com(.*)$ [NC]
RewriteCond %{HTTP_USER_AGENT} “(baidu.Transcoder|mini|android|blackberry|googlebot-mobile|iemobile|Mobile|ipad|iphone|ipod|opera mobile|palmos|webos|ucweb|Windows Phone|Symbian|hpwOS)” [NC]
RewriteRule ^(.*)$ http://m.apoyl.com/ [L,R=302]

</Directory>

RewriteCond 上面采用两个种方式

配置起来繁琐一些、优点就是不用修改原来的PC系统代码

 

本文出自 “凹凸曼” 博客,请务必保留此出处 http://www.apoyl.com/?p=1977

日志信息 »

该日志于2015-11-12 10:56由 凹凸曼 发表在Apache, 问题集分类下, 评论已关闭。

目前盖楼

抱歉,评论被关闭

« »