dedecms移动端生成静态页面,域名/m改为m.xxx.com

本文介绍了如何将dedecms移动端链接由动态变为静态,详细讲解了修改模板文件实现静态链接的步骤,并涉及CSS、JS引用路径调整。同时,解决了PC端页面在移动设备上自动跳转到对应移动端静态页面的问题,包括首页、列表页和文章页的跳转策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在做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后台,栏目管理——栏目——更改——高级选项——文章命名规则里面更改文章明明规则
才配得上使用这个方法。

生成页面就可以用了

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值