织梦PC+移动双后台同数据库二级域名附件相对路径不改源码

/ 0评 / 0

最近研究织梦PC站+移动站,发现好多方案都是修改源码实现,这有一个缺点就是无法使用织梦更新,目前织梦的补丁更新算是比较快的。经常性的更新安全补丁。

所以为了使用他的补丁,我保持不动任何源代码,来搭建网站。

此次使用双后台同数据库实现思路是

1、新建/shouji/路径并在.htaccess里面添加二级域名映射(一个虚拟主机就可以搞定,PC站域名是www开头,移动站域名是m开头,并且可以随意更改)

使用以下rewrite规则即可

RewriteEngine on

RewriteCond %{HTTP_HOST} ^m.域名$

RewriteCond %{REQUEST_URI} ^/uploads(.*)$

RewriteRule ^(.*)$  http://PC域名/$1 [L]

#以上三行是保证访问移动站时,附件地址不变。

RewriteCond %{HTTP_HOST} ^m.域名$

RewriteCond %{REQUEST_URI} !^/shouji/

RewriteRule ^(.*)$ /shouji/$1

RewriteCond %{HTTP_HOST} ^m.域名$

RewriteRule ^(/)?$ shouji/index.html [L]

2、/shouji/下是一套与PC站相同的源码,我是直接复制的(可以清理一下uploads里面的文件,但尽量保证源码完整,以备不时之需)

3、把/shouji/下模板路径做的与PC站完全一样,连模板名字都要一样

因为数据库中存储了栏目的模板路径和文件名,没有办法分别设置,所以只要保证/shouji/下的模板与栏目里设置的文件名一样即可,只是里面的样式不同而已。

4、更新内容时只更新PC站,一定不要更新移动站,因为附件上传的路径不对,如果上传到移动站的话,那么附件路径就不对了。

5、更新完PC站,进移动站后台直接生成即可

6、PC站所有页面添加JS跳转、301、302自己根据自己的情况选择即可。

JS方法:

var _url = window.location.href;

var curl = window.location.pathname;

if(/(mini|Android|blackberry|googlebot-mobile|iemobile|Mobile|ipad|iphone|ipod|opera mobile|palmos|webos|ucweb|Windows Phone|Symbian|hpwOS)/.test(navigator.userAgent)){

window.location.href= "m.域名" + curl;

}

301、302方法:

RewriteCond %{HTTP_HOST} ^PC域名$
RewriteCond %{REQUEST_URI} !^/uploads(.*)$  (此处是为防止附件也被跳转,所以设置为不包含uploads)
RewriteCond %{HTTP_USER_AGENT} "android|blackberry|googlebot-mobile|iemobile|ipad|iphone|ipod|opera mobile|palmos|webos|UCBrowser|MQQBrowser|Windows Phone|wap" [NC]
RewriteRule ^(.*)$ 移动域名/$1 [L,R=302]

此处我用的是302方法,虽然各种渠道了解的302在百度眼里不太敏感,而且被认为作弊的比较多,但我相信我只要专心做网站,不为优化而做的网站,才是最好的SEO。

302的好处是临时跳转,可以理解为在一定条件下会跳转,在一定条件下不会跳转,这样符合PC\移动根据访问用户客户端不同而跳转页面不同的需求和原理。

而且302是直接服务器响应跳转,在加载网页代码之前就会判定,从而跳转,如果使用JS,则需要加载到包含跳转代码的JS部分才会跳转,这样,浪费加载时间,而且对于网速不是很快的用户来讲,打开一个页面,马上就要加载完了,确又跳到另一个页面,体验上打了一个折扣。

7、移动站模板title设置时可以手动在变量后面添加移动站三个字,这样保证百度可以精准识别,

如<title>{dede:global.cfg_webname/}移动站</title>

另外

PC端head里面加上<meta name="applicable-device"content="pc">

移动端head里面加上<meta name="applicable-device"content="mobile">

发表评论

电子邮件地址不会被公开。 必填项已用*标注