当前位置:博客首页 > SEO > 正文

【亲测有效】织梦网站移动手机端伪静态设置教程,跟Request Error!说拜拜(宝塔LNMP环境)

作者: Jarvan 分类: SEO 发布时间: 2020-06-10 09:14 百度已收录

前言:本教程由本人亲自测试网上多个教程的资料后总结,看了3天网上各种教程并测试,终于完美解决了,教程仅适合PC端静态,移动端动态想要做伪静态的情况,本教程只涉及手机移动端的伪静态


一、如何判断你的网页是真静态还是伪静态?

方法很简单,在浏览器地址栏输入javascript:alert(document.lastModified),会弹出一个窗口显示页面最近一次的更新时间,如果时间跟你当前时间一致就是伪静态,反之则是真静态

举例:下面是我PC端列表页的时间显示,而我当前真实时间是2020年的6月10上午9点8分,而截图是昨天的日期,说明我PC端列表页是真实静态页面

这证明我PC端是真实静态页面

二、织梦网站手机移动端伪静态设置

1)下载文件并覆盖

下载提供的压缩包,根据你自己服务器的路径,覆盖以下4个文件(覆盖前请自行备份自己的原文件)
\m\index.php
\m\list.php
\m\view.php
\include\arc.listview.class.php

我放在了百度网盘,网盘地址:

链接:https://pan.baidu.com/s/1KOpW_CaSGnnL8f7g3H5clg
提取码:7mb0

2)域名解析及面板绑定指定根目录

移动端域名m.xxx.com解析到自己的服务器,宝塔面板添加移动端域名
m.xxx.com,并将根目录设置为网站目录的m文件夹

3)织梦后台添加新的变量

织梦后台→系统设置→核心设置→是否使用伪静态→选择【否】(如果选择是,后面就没法干了)

是否使用伪静态,一定要选否

网站分类目录的【文件保存目录】按照下面这2种规则设置(2种都可以),最后面不要带/

变量名称:cfg_mobile
变量类型:文本
参数说明:手机版网址
变量值:http://m.xxx.com
所属组:站点设置

变量名称:cfg_rewritem
变量类型:布尔(Y/N)
参数说明:手机版伪静态
变量值:Y
所属组:站点设置

4)修改移动端网站模板

看看自己的移动端网页,css、js是否调用正常,这里需要把他们原先的相对路径改成绝对路径

index.php【改成】{dede:global.cfg_mobile/}

list.php?tid=[field:id/]【改成】[field:typelink/]

list.php?tid=~id~【改成】~typelink~

list.php?tid={dede:field name=’id’/}【改成】{dede:field.typeurl/}

view.php?aid=[field:id/]【改成】field:arcurl/]

[field:litpic/]【改成】[field:global.cfg_basehost/][field:litpic/]

[field:image/]【改成】<img src=”[field:global.cfg_basehost/][field:litpic/]”>

备注:上面含list的地址指的列表页,带view的地址是文章详情页

· 翻页修改

上一篇标签 {dede:prenext get=’pre’/}

改成

{dede:prenext get=pre runphp=yes}
$preurl = @me;
preg_match('/aid=(\d*)/',$preurl,$match);
$result = GetOneArchive($match[1]);
@me = !empty($result) ? "上一篇:<a href=\"{$result['arcurl']}\">{$result['title']}</a>" : "上一篇:没有了";
{/dede:prenext}

下一篇标签 {dede:prenext get=’next’/}

改成

{dede:prenext get=next runphp=yes}
$preurl = @me;
preg_match('/aid=(\d*)/',$preurl,$match);
$result = GetOneArchive($match[1]);
@me = !empty($result) ? "下一篇:<a href=\"{$result['arcurl']}\">{$result['title']}</a>" : "下一篇:没有了";

· 文章页修改

· 栏目页修改(指的是类似于关于我们、联系我们之类的单页面,如下图栏目属性设置为频道封面的)

栏目内容 {dede:field.content/}

改成

{dede:field.content runphp=yes}
global $cfg_basehost;
$str = @me;
$search = '/(<img.*?)width=(["\'])?.*?(?(2)\2|\s)([^>]+>)/is';
$search1 = '/(<img.*?)height=(["\'])?.*?(?(2)\2|\s)([^>]+>)/is';
$search2 = '#(<img.*?style=".*?)width:\d+px;([^"]*?.*?>)#i';
$search3 = '#(<img.*?style=".*?)height:\d+px;([^"]*?.*?>)#i';
$content = preg_replace($search,'$1$3',$str);
$content = preg_replace($search1,'$1$3',$content);
$content = preg_replace($search2,'$1$2',$content);
$content = preg_replace($search3,'$1$2',$content);
@me = $content;
@me = str_replace('/uploads/', $cfg_basehost.'/uploads/', $content);
{/dede:field.content}

5)最重要的来了,修改宝塔伪静态规则

点击宝塔面板移动端网站m.xxx.com,设置伪静态规则

伪静态规则:

复制粘贴就行

rewrite "^/index.html$" /index.php last;
rewrite "^/(.)/$" /list.php?tid=$1 last; 
rewrite "^/(.)/list_([0-9]+)_([0-9]+).html$" /list.php?tid=$1&TotalResult=&PageNo=$2 last; 
rewrite "^/(.)/([0-9]+).html$" /view.php?aid=$1 last;

这里要记住2个点

第1点,如果不使用移动端动态首页,把规则中的第一行(关于首页伪静态的)删掉, 否则会让你首页陷入死循环,网页打不开

第2点,这里需要注意,对于列表页的规则,要观察下你修改前移动端动态的网址是什么,比如我的是:http://m.xxx.com/list.php?tid=9&TotalResult=16&PageNo=2

所以我上面的伪静态规则对应写的:

rewrite “^/(.)/list_([0-9]+)_([0-9]+).html$” /list.php?tid=$1&TotalResult=*&PageNo=$2 last;

因为我发现很多教程里给的伪静态规则写的是:

rewrite “^/(.)/list_([0-9]+)_([0-9]+).html$” /list.php?tid=$1&PageNo=$2 last;

没有我标了红的 TotalResult=* ,这导致我使用他们的规则时,发现列表页第1页正常,但点击下一页就开始都是Request Error!,这就是生搬硬套伪静态规则导致的,需要根据自己网站的动态地址来做伪静态规则

所以你在用我这套规则的时候也要注意观察,你网站列表页的动态链接是否有TotalResult=*,如果有则正常复制我的就行,如果没有,就把我规则里的TotalResult=*删除掉

就这么一个小的点,卡了我2~3天时间,我也是醉了,设置完这个以后,我网站移动端伪静态就完全没有问题了

最后!重点!!

配置完后一定要重启服务器!
配置完后一定要重启服务器!
配置完后一定要重启服务器!

【 参考文章】

织梦dedecms手机版_移动端伪静态实现与PC电脑版静态地址url一致教程+伪静态规则

DedeCMS栏目用目录名个性化伪静态

织梦dedecms URL伪静态重写设置修改方法小结

织梦电脑站手机站伪静态+全套伪静态规则-自由目录版