本文目录
记一次站点更改WordPress固定链接并提交百度站长平台链接改版。近日,由于看着 朴素 的链接不顺眼,本着生命在于折腾的心态,准备着手将WordPress的固定链接由原本的朴素改为自定义。
即 https://www.qcgzxw.cn/?p=6666 -> https://www.qcgzxw.cn/6666.html
由于前几次更换完固定链接后出现新链接访问404的症状,以及担心百度掉收录等等问题,这次大改之前可以说是做足了准备。
原因分析:未添加nginx或者apache的重写规则(rewriter)
解决办法:添加或将旧规则更新为以下代码
location / { index index.html index.php; if (-f $request_filename/index.html){ rewrite (.*) $1/index.html break; } if (-f $request_filename/index.php){ rewrite (.*) $1/index.php; } if (!-f $request_filename){ rewrite (.*) /index.php; } } rewrite /wp-admin$ $scheme://$host$uri/ permanent;
1234567891011121314 | location / { index index.html index.php; if (-f $request_filename/index.html){ rewrite (.*) $1/index.html break; } if (-f $request_filename/index.php){ rewrite (.*) $1/index.php; } if (!-f $request_filename){ rewrite (.*) /index.php; } } rewrite /wp-admin$ $scheme://$host$uri/ permanent; |
---|
更改后记得重启Nginx应用配置。
其实WordPress早就给出了文档:https://codex.wordpress.org/Nginx
这没啥好讲的,按你个人喜好以及搜索引擎喜好来确定具体的链接形势。
我选择/%post_id%.html
的链接形势是为了微信小程序以及伪静态和站点收录
配置好nginx 的rewriter规则之后即可直接应用
百度站长平台添加规则地址:https://ziyuan.baidu.com/rewrite
360站长平台添加规则地址:http://zhanzhang.so.com/?m=SiteUpgrade
以上是百度改版说明。
由于WordPress PostID不连续,若使用 规则改版
会提示原链接访问错误
。(原因可能是不连续ID或者重写规则的问题)
所以我们只能选择 新旧URL对
的方式。
获取全站文章链接,并将其编辑为旧链接 新链接的形式
在WordPress的根目录添加一个GetId.php文件,具体代码如下
<?php include ( "wp-config.php" ) ; require_once (ABSPATH.'wp-blog-header.php'); global $wpdb; $CID = 1;//分类id,只支持一个分类 $sql="SELECT ID,post_title,post_content FROM wp_posts,wp_term_relationships,wp_term_taxonomy WHERE ID=object_id and wp_term_relationships.term_taxonomy_id = wp_term_taxonomy.term_taxonomy_id and post_type='post' and post_status = 'publish' and wp_term_relationships.term_taxonomy_id = $CID and taxonomy = 'category' order by ID desc"; $myrows = $wpdb->get_results($sql); foreach ($myrows as $b) { echo $b->ID."<br />"; } ?>
1234567891011 | <?php include ( "wp-config.php" ) ; require_once (ABSPATH.'wp-blog-header.php'); global $wpdb; $CID = 1;//分类id,只支持一个分类 $sql="SELECT ID,post_title,post_content FROM wp_posts,wp_term_relationships,wp_term_taxonomy WHERE ID=object_id and wp_term_relationships.term_taxonomy_id = wp_term_taxonomy.term_taxonomy_id and post_type='post' and post_status = 'publish' and wp_term_relationships.term_taxonomy_id = $CID and taxonomy = 'category' order by ID desc"; $myrows = $wpdb->get_results($sql); foreach ($myrows as $b) { echo $b->ID."<br />"; }?> |
---|
然后访问你的域名+GetId.php
(www.qcgzxw.cn/GetId.php)即可获取该目录ID下的所有文章,如有多个分类目录,将php文件里面的$CID改成另一个目录ID重新访问。
目录页面地址你的域名+/wp-admin/edit-tags.php?taxonomy=category
访问php文件后,会得到当前目录的所有文章ID
将ID保存到NotePad++
然后按Ctrl+F唤出小窗口,点击替换,找对正则表达式,然后全部替换
我的正则如下
查找目标:(-?[1-9]\d*) 替换目标:www.qcgzxw.cn/?p=$1 www.qcgzxw.cn/$1.html
12 | 查找目标:(-?[1-9]\d*)替换目标:www.qcgzxw.cn/?p=$1 www.qcgzxw.cn/$1.html |
---|
然后全选复制规则,粘贴到百度站长平台和360站长平台等待审核即可。
PS:360站长平台提交url对时不需带http(www.qcgzxw.cn/?p=123 www.qcgzxw.cn/123.html),百度站长平台需要带http(https://www.qcgzxw.cn?p=123 https://www.qcgzxw.cn/123.html)
应用rewriter之后,旧链接会自动301重定向到新链接。
网站改版对收录还是有一定影响,希望做好心理准备!