最近在做SEO站,移动动态了链接不利于网站优化,所以把移动端的地址改为静态的。
将这两个文件夹里的文件复制到对应的文件夹,文件可以通过资源链接下载
文件覆盖之后后台就变成这样了,生成主页网站文件就会生成index.html文件,生成栏目就会生成栏目对应的文件
但是在移动端访问PC端的页面还跳转不到移动端的静态页面,只能跳转到移动端的动态页面;
当然在移动端直接输入移动端的动态url是可以访问到移动端的动态页面的;
在移动端直接输入移动端的静态url也是可以访问到这些静态页面的;
在解决PC跳转到移动端的问题之前,先修改移动端模板里Url问题
header_m.htm文件的修改:
把文件里面的全部 <a href="index.php"> 替换成:<a href="/"> ;
<a href='list.php?tid=~id~' ~rel~>替换成:<a href='~typelink~' ~rel~> ;
<a href='list.php?tid=[field:id/]' [field:rel/]>替换成:<a href='[field:typeurl/]' [field:rel/]>;
index_m.htm文件的修改:
把文件里面的全部 <a href="index.php"> 替换成:<a href="/"> ;
<a href="list.php?tid=[field:id/]">替换成:<a href="[field:typelink /]">;
<a href="view.php?aid=[field:id/]">替换成:<a href="[field:arcurl/]"> ;
<a href="list.php?tid={dede:field name='id'/}">替换成:<a href="{dede:field name='typeurl'/}">;
<a href="view.php?aid=[field:id/]" class="am-list-item-hd">替换成:<a href="[field:arcurl/]" class="am-list-item-hd"> ;
<a class="am-list-news-more am-btn am-btn-default" href="list.php?tid={dede:field name='id'/}">
替换成:
<a class="am-list-news-more am-btn am-btn-default" href="{dede:field name='typeurl'/}">
list_default_m.htm文件的修改:
<a href="view.php?aid=[field:id/]">替换成:<a href="[field:arcurl/]"> ;
<a href="view.php?aid=[field:id/]" class="">替换成:<a href="[field:arcurl/]" class=""> ;
<a href="view.php?aid=[field:id/]">替换成:<a href="[field:arcurl/]">;
<a href="view.php?aid=[field:id/]">替换成:<a href="[field:arcurl/]">;
article_article_m.htm文件的修改:
<a href="view.php?aid=[field:id/]">替换成:<a href="[field:arcurl/]">;
<a href="view.php?aid=[field:id/]">替换成:<a href="[field:arcurl/]">;
至此,已经把动态链接修改完了为静态链接
第二个问题是CSS,JS文件引入的问题,我是用的绝对路径
dedecms后台—》系统—》系统就基本参数—》添加新变量
CSS引入的时候可以用这个变量
<link rel="stylesheet" type="text/css" href="{dede:global.cfg_mobile/}/skin/css/style.css">
下面是跳转问题:PC端的首页、列表页、文章页在移动设备访问的时候,要一一对应跳转到移动端页面
下面的<meta>标签代码为搜素引擎发现跳转适配关系的方式之一(可同时使用)——“Meta标记”,
下面几行javascript代码的功能是识别是否移动端设备访问,
如是则将当前pc端页面自动跳转到匹配的移动端页面。
(默认移动端页面是在/m/目录下,{dede:global.cfg_mobileurl/}默认为“m”目录)
把index.html这段代码删掉
<meta http-equiv="mobile-agent" content="format=xhtml;url{dede:global.cfg_mobileurl/}/index.php">
<script type="text/javascript">if(window.location.toString().indexOf('pref=padindex') != -1){}else{if(/AppleWebKit.*Mobile/i.test(navigator.userAgent) || (/MIDP|SymbianOS|NOKIA|SAMSUNG|LG|NEC|TCL|Alcatel|BIRD|DBTEL|Dopod|PHILIPS|HAIER|LENOVO|MOT-|Nokia|SonyEricsson|SIE-|Amoi|ZTE/.test(navigator.userAgent))){if(window.location.href.indexOf("?mobile")<0){try{if(/Android|Windows Phone|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent)){window.location.href="{dede:global.cfg_mobileurl/}/index.php";}else if(/iPad/i.test(navigator.userAgent)){}else{}}catch(e){}}}}
</script>
然后在PC端的首页index.htm的<head></head>标签之间增加如下代码:
<meta http-equiv="mobile-agent" content="format=xhtml;url={dede:global.cfg_mobileurl/}/index.html">
<script type="text/javascript">
if(window.location.toString().indexOf('pref=padindex') != -1){}else{if(/AppleWebKit.*Mobile/i.test(navigator.userAgent) || (/MIDP|SymbianOS|NOKIA|SAMSUNG|LG|NEC|TCL|Alcatel|BIRD|DBTEL|Dopod|PHILIPS|HAIER|LENOVO|MOT-|Nokia|SonyEricsson|SIE-|Amoi|ZTE/.test(navigator.userAgent))){if(window.location.href.indexOf("?mobile")<0){try{if(/Android|Windows Phone|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent)){window.location.href="{dede:global.cfg_mobileurl/}/index.html";}else if(/iPad/i.test(navigator.userAgent)){}else{}}catch(e){}}}}
</script>
列表页跳转问题:
把列表页
<meta http-equiv="mobile-agent" content="format=xhtml;url={dede:global.cfg_mobileurl/}/list.php?tid={dede:field.id/}">
<script type="text/javascript">if(window.location.toString().indexOf('pref=padindex') != -1){}else{if(/AppleWebKit.*Mobile/i.test(navigator.userAgent) || (/MIDP|SymbianOS|NOKIA|SAMSUNG|LG|NEC|TCL|Alcatel|BIRD|DBTEL|Dopod|PHILIPS|HAIER|LENOVO|MOT-|Nokia|SonyEricsson|SIE-|Amoi|ZTE/.test(navigator.userAgent))){if(window.location.href.indexOf("?mobile")<0){try{if(/Android|Windows Phone|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent)){window.location.href="{dede:global.cfg_mobileurl/}/list.php?tid={dede:field.id/}";}else if(/iPad/i.test(navigator.userAgent)){}else{}}catch(e){}}}}</script>
这段代码删掉,
<script type="text/javascript">
if(window.location.toString().indexOf('pref=padindex') != -1){}
else{
if(/AppleWebKit.*Mobile/i.test(navigator.userAgent) || (/MIDP|SymbianOS|NOKIA|SAMSUNG|LG|NEC|TCL|Alcatel|BIRD|DBTEL|Dopod|PHILIPS|HAIER|LENOVO|MOT-|Nokia|SonyEricsson|SIE-|Amoi|ZTE/.test(navigator.userAgent)))
{
if(window.location.href.indexOf("?mobile")<0){
try{
if(/Android|Windows Phone|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent))
{
url=window.location.href;
var strs= new Array(); //定义一数组
var httpname="";
var newurl="";
strs=url.split("."); //字符分割
for (i=0;i<strs.length ;i++ )
{
if(i==0){
httpname="http://m.";
}else{
newurl+=strs[i]+".";
}
}
newurl = newurl.substr(0, newurl.length - 1);
window.location.href=httpname+newurl;;
}
else if(/iPad/i.test(navigator.userAgent)){}
else{}
}
catch(e){}
}
}
}
</script>
列表页没有使用<meta>标签,在项目中出现错误,不能跳转到对应的页面,所以就改成这样,使用js获取当前的url,然后把域名换成移动端的域名。
内容页也是如此
<script type="text/javascript">
if(window.location.toString().indexOf('pref=padindex') != -1){}
else{
if(/AppleWebKit.*Mobile/i.test(navigator.userAgent) || (/MIDP|SymbianOS|NOKIA|SAMSUNG|LG|NEC|TCL|Alcatel|BIRD|DBTEL|Dopod|PHILIPS|HAIER|LENOVO|MOT-|Nokia|SonyEricsson|SIE-|Amoi|ZTE/.test(navigator.userAgent)))
{
if(window.location.href.indexOf("?mobile")<0){
try{
if(/Android|Windows Phone|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent))
{
url=window.location.href;
var strs= new Array();
var httpname="";
var newurl="";
strs=url.split(".");
for (i=0;i<strs.length ;i++ )
{
if(i==0){
httpname="http://m.";
}else{
newurl+=strs[i]+".";
}
}
newurl = newurl.substr(0, newurl.length - 1);
window.location.href=httpname+newurl;;
}
else if(/iPad/i.test(navigator.userAgent)){}
else{}
}catch(e){}
}
}
}
</script>
这个方法生成的移动端静态文章页,直接是 主域名/栏目/id.html,如果文章命名规则不作处理的话,访问的链接会出现错误的
如果要用这个方法,必须要在织梦CMS后台,栏目管理——栏目——更改——高级选项——文章命名规则里面更改文章明明规则
才配得上使用这个方法。
生成页面就可以用了