影子论坛

搜索
夜间模式◐

记录本次影子论坛url改版中的知识点
· admin · 发布于 · 2020-06-14 · 956 次点击 · 复制地址

管理员   admin  · 2020-06-14 17:13:54 · 显示全部楼层 · 阅读
细心的同学已经发现,影子论坛的文章url已经做了改变,

就比如你现在正在看的这篇文章
原来旧的链接模式是:http://www.shadow-forum.com/thread-3891-1-1.html
现在新的链接模式是:http://www.shadow-forum.com/t/3891/1.html

精简缩短了链接,可以更加直观的通过帖子id来访问论坛。

那接下来就记录一下这两天的工作内容,主要是记录下来给自己备忘,
同时也留给其他的和我一样的小白参考,至于大佬们可以多提意见、帮助我们进一步优化。

1、正则
在原来的链接中使用nginx做了伪静态,将原本的动态链接/forum.php?mod=viewthread&tid=3891&page=1
改成了/thread-3891-1-1.html 这种模式,其中需要用到正则。
重写关系就是
  1. rewrite ^([^\.]*)/t/([0-9]+)/([0-9]+)\.html$ $1/forum.php?mod=viewthread&tid=$2&page=$3 last;
复制代码

2、百度站长工具
由于改变了链接,那对于搜索引擎来说就相当于新的内容,再访问以前的链接就是404,这对于网站排名很不利。
于是找到了百度站长工具中的网站改版,经过几次提交都出现一个问题,
jiaoyanshibai.jpg

跳转关系与规则不符

后来仔细阅读了网站改版的说明,其中有一条说明“改版规则中的新旧链接一定要使用301的方式进行跳转
这才明白还要把原来的链接做跳转才行。

3、301跳转
在上面已经用了rewrite来实现伪静态,于是就偷懒也用了这个方法匹配了新旧链接:
  1. rewrite ^([^\.]*)/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ $1/t/([0-9]+)/1.html last;
复制代码

这样写确实没问题,可是百度就是不认啊。

最终还是明白,301跳转还是得跳转啊。
伪静态和跳转最明显得区别就是 在浏览器中访问 http://www.shadow-forum.com/t/3891/1.html
实际**问的是http://www.shadow-forum.com/foru ... tid=3891&page=1
但是浏览器地址栏还是显示http://www.shadow-forum.com/t/3891/1.html

而跳转就是访问http://www.baidu.com
会跳转到http://www.shadow-forum.com  
浏览器地址栏是会变成http://www.shadow-forum.com

然后开始研究nginx 301怎么写,不会搞就得问人啊,在@Missgetx 大佬的帮助下才搞定
原来只是隐性URL转发和显性URL转发的区别。
正确的写法
  1.   rewrite ^([^\.]*)/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ $1/t/$2/$3.html permanent;
复制代码
其实很容易看出
last; =>隐性URL转发
permanent; => 显性URL转发


最后:大家可以尝试新的链接了,并且访问老链接的时候还是会被跳转到新的链接。
以上内容仅以个人角度记录本次改版工作,其中用到的专用名词,以及各种配置说明可能存在错误,欢迎指出。



免责声明:
影子论坛所发布的一切内容仅限用于学习和研究目的,请勿用于商业或者非法用途,否则一切后果由用户自负。
请支持正版得到更好的正版服务。如有侵权请邮件与我们联系处理。Mail To:swatxhim@outlook.com

回复

使用道具 举报

 楼主 · 管理员   admin  · 2020-06-14 17:13:54 · 显示全部楼层
其实还有很多内容的改变,例如插件访问的地址,个人空间访问的地址,但是这些就没有去百度做更改,也没有做301.
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表