今天解决了dedecms手机网站绑定二级域名的一个小难题,因为最近几天一直在网上搜索dedecms手机网站如何绑定二级域名的方法,直到今天才找到方法,特作个记录,以后会常用到。下面简单来说下我方法,所有方法均搜索自网络加上自己的思路。适合没有子网站功能的虚拟主机,如果你有子目录功能,下面的第一点里的不用设置,当然你要绑定二级域名到子目录还是必须要做的。
一、解决没有子目录功能的虚拟主机如何绑定二级域名
因为用的是虚拟主机没有子目录或者是子网站功能,也就是说不能使用两个网站,而现在要使用二级域名,就等于是要开两个不同的网站,首要解决的是,没有子目录功能的虚拟主机如何绑定二级域名,具体方法,在你的网站根目录新建个.htaccess文件(htaccess前面有个小点的)在此文件中加入以下语句:
RewriteEngine on
// 把 m.167h.com改为你要绑定的域名.
RewriteCond %{HTTP_HOST} ^(www.)?m.167h.com$
//把 m改为要绑定的目录.
RewriteCond %{REQUEST_URI} !^/m/
//不要改以下两行.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
// 把 m改为要绑定的目录.
RewriteRule ^(.*)$ /m/$1
//把 m.167h.com改为你要绑定的域名
// 把 m 改为要绑定的目录.
//m/ 后面是首页文件index.php, index.html……
RewriteCond %{HTTP_HOST} ^(www.)?m.167h.com$
RewriteRule ^(/)?$ m/index.php [L]
通过以上方法就可以实现二级域名 m.167h.com 打开网站,革命才刚刚开始,下面要设置DEDECMS手机跳转代码。不然打开的还可能是PC网站。(注意将//整行删除)
二、实现DEDECMS手机访问自动跳转到手机网站。
这里要实现DEDECMS手机访问自动跳转到手机网站,不仅仅是首页跳转,而是所有页跳转到对应的手机网站,还是能过代码实现,把代码放到模板文件代码部分的前。找到两种代码都可以实现跳转,个人也不知那种好,我就用第二种吧。本处不使用织梦默认手机跳转代码,因此不需要设置什么绝对地址。
1、跳转代码一
<script language="javascript">
function mobile_device_detect(url)
{
var thisos=navigator.platform;
var os=new array("iphone","ipod","ipad","android","nokia","symbianos","symbian","windows phone","phone","linux armv71","maui","untrusted/1.0","windows ce","blackberry","iemobile");
for(var i=0;i<os.length;i++)
{
if(thisos.match(os[i]))
{
window.location=url;
}
}
//因为相当部分的手机系统不知道信息,这里是做临时性特殊辨认
if(navigator.platform.indexof('ipad') != -1)
{
window.location=url;
}
//做这一部分是因为android手机的内核也是linux
//但是navigator.platform显示信息不尽相同情况繁多,因此从浏览器下手,即用navigator.appversion信息做判断
var check = navigator.appversion;
if( check.match(/linux/i) )
{
//x11是uc浏览器的平台 ,如果有其他特殊浏览器也可以附加上条件
if(check.match(/mobile/i) || check.match(/x11/i))
{
window.location=url;
}
}
//类in_array函数
array.prototype.in_array = function(e)
{
for(i=0;i<this.length;i++)
{
if(this[i] == e)
return true;
}
return false;
}
}
mobile_device_detect("{dede:global.cfg_wap/}/");
</script>
重点在红色部分。首页、栏目页、内容页的代码不同。不同的页面就要改成不同的代码,如下。
首页代码:http://m.167h.com/
栏目页改成 http://m.167h.com/list.php?tid={dede:field.id/}
内容页改成 http://m.167h.com/view.php?aid={dede:field.id/}
为方便和通用过,可以将二级域名新建变量,如我新建的 {dede:global.cfg_wap/} 这个是就是二级域名,(如何添加新能量很简单,搜索一下)那么我的代码可以像下面那样写了。
首页代码:{dede:global.cfg_wap/}/
栏目页改成 {dede:global.cfg_wap/}/list.php?tid={dede:field.id/}
内容页改成 {dede:global.cfg_wap/}/view.php?aid={dede:field.id/}
二、跳转代码二
<script src="http://siteapp.baidu.com/static/webappservice/uaredirect.js" type="text/javascript"></script>
<script type="text/javascript">uaredirect("{dede:global.cfg_wap/}/");</script>
这里的红色代码 和上在的同理,在栏目页和内容页,按上面的一样改动。
能过以上设置可以实现在移动端自动跳转到相对应的手机面页,dedecms手机网站绑定二级域名的问题了就解决了。