AMP是谷歌的移动加速功能,zzzcms的SEO功能说实话,真的很烂,网站要求增加AMP功能,简单开发了下
1.inc/zzz_mian.asp中获取当前页面url的函数要修改下。
此函数调用方法 :
getthisurl(0)可以获得网站网址类似http://www.5756653.cn
getthisurl(1)可以获得网站网址类似http://www.5756653.cn/id=1,带参数的网址
getthisurl(“amp”)可以获得网站网址类似http://www.5756653.cn/amp/id=1,在域名后面加上“/amp”并且包含参数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
'获取完整当前网址 function getthisurl(str) on error resume next dim url url=request.servervariables("http_x_rewrite_url") if len(url)=0 then url=request.servervariables("http_x_original_url") if len(url)>0 then getthisurl=weburl&url else dim t5 dim t1,t2,t3,t4,aamp if str="amp" then aamp="/amp" t1=request.servervariables("server_name")&aamp t2=request.servervariables("server_port") t3=request.servervariables("script_name") t4=request.servervariables("query_string") t5="http://"&t1 if t2<>"80" then t5=t5&":"&t2 t5=t5&t3 if t4<>"" then t5=t5&"?"&t4 getthisurl=t5 end if if str="0" then getthisurl="http://"&t1 else getthisurl=enhtml(replace(getthisurl,"&","%26")) end if end function |
inc/zzz_template.asp,在合适的位置增加标签替换
1 2 |
ZContent = replaceStr(ZContent,"{zzz:curLink}",getthisurl(1)) ZContent = replaceStr(ZContent,"{zzz:AmpUrl}",getthisurl("amp")) |
前台模板中需在head标签内插入下面语句,来声明当前网页amp版本的路径
1 |
<link rel="amphtml" href="{zzz:AmpUrl}"> |
AMP模板中也要插入下面代码来说明amp网页对应的电脑端的地址
1 |
<link rel="canonical" href="{zzz:NoAmpUrl}"> |
amp对应的inc/zzz_template.asp文件中,标签替换语句,获取当前amp版本的带参数网址,替换掉里面的amp/
1 |
ZContent = replaceStr(replaceStr(ZContent,"{zzz:NoAmpUrl}",getthisurl(1)),"amp/","") |
amp语法的img标签和普通的不同,所以此文件还需增加一个函数,来转换数据库中的img标签
1 2 3 4 5 6 7 8 9 10 11 |
Function ImgToAmpImg(ContentStr) Dim ClsTempLoseStr,regEx ClsTempLoseStr = Cstr(ContentStr) Set regEx = New RegExp regEx.Pattern = "<img.*?\ssrc=([\""\'])([^\""\']+?)\1.*?>" regEx.IgnoreCase = True regEx.Global = True ClsTempLoseStr=regEx.replace(ClsTempLoseStr,"<amp-img layout=""responsive"" width=""800"" height=""600"" src=""$2"" srcset=""$2 640w, $2 320w, $2 1080w""></amp-img>") ImgToAmpImg = ClsTempLoseStr Set regEx = Nothing End Function |
1 2 |
调用: Zcontent=ImgToAmpImg(Zcontent) |
amp出于性能考虑,html 中不允许使用内联style,所有样式只能放到head 的 style 标签里. 数据库里调用内容部分的style标签要去掉,又创造了个函数,加在amp目录inc/zzz_template.asp里就行
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
'========================================= '参数解释: 'str 原来的字符串 'patrn 要替换的字符串(正则表达式) 'replStr 要替换成的字符串 '========================================= Function ReplaceReg(str,patrn,replStr) Dim regEx ' 建立变量。 Set regEx = New RegExp ' 建立正则表达式。 regEx.Pattern = patrn ' 设置模式。 regEx.IgnoreCase = true ' 设置是否区分大小写。 regEx.Global=True ReplaceReg = regEx.Replace(str,replStr) ' 作替换。 Set regEx=Nothing End Function |
用下面正则语句来替换
1 |
Zcontent=ReplaceReg(Zcontent,"\s(style=)+(""|')\S*?(""|')","") |
最后一步:下载附件,解压到根目录里
另外,再啰嗦一句,百度也有MIP,功能和谷歌一样,标签语法基本相同,按照此文简单修改就行
未经允许不得转载:Windy's Blog » zzzcms添加谷歌AMP支持