随身笔记
随身笔记

wordpress默认短链接自动跳转自定义固定链接

在WIN下的IIS上发布wordpress的同学都知道是件很麻烦的事情尤其是还要进行自定义固定链接修改的时候更是麻烦,但是就是在这样情况下反而我还学到了很多东西喜忧参半啊。
在IIS修改自定义固定链接可以参考我以下的文章:
apache实现自定义固定链接:

https://sdeno.com/如何自定义wordpress固定链接/
IIS实现自定义固定链接:
https://sdeno.com/伪静态网页/
https://sdeno.com/wordpress修改固定链接在西部数码的实现/
https://sdeno.com/使用wordpress-url-rewrite解决搜索分页问题及不在使用404页面实现/
这里主要说的是,在IIS上修改好了固定链接但是发现百度依然还收录我们这样类似的默认链接?p=id,我们不希望这样因为重复了收录对SEO不友好,我之前也查过了国外的文章是用到了这么一段代码删除固定链接的:
[code]remove_action( ‘wp_head’, ‘wp_shortlink_wp_head’, 10, 0);[/code]
对,没错但是我发现我添加了后百度一样还是收录了我的默认链接?p=id,因为以上代码是适用于apache的并不适用于IIS,于是我发现一个细节,在apache上获取的短链接访问的时候是自动跳转到我们的自定义固定连接的,而IIS上并不会自动跳转这就是造成了百度还是收录短链接,我们将以下代码写入到header.php顶部中:
[code]if($_GET[‘p’]||$_GET[‘page_id’]){
if($_GET[‘p’])$id=$_GET[‘p’];
if($_GET[‘page_id’])$id=$_GET[‘page_id’];
$post= get_post($id);
$name=$post->post_name;
header(‘HTTP/1.1 301 Moved Permanently’);//发出301头部
header(‘Location: ‘.bloginfo(‘url’).’/’.$name.’/’);
exit();
}else if($_GET[‘cat’]){
$id=$_GET[‘cat’];
$cat=get_category($id);
$name=$cat->slug;
header(‘HTTP/1.1 301 Moved Permanently’);//发出301头部
header(‘Location: ‘.bloginfo(‘url’).’/cat/’.$name.’/’);
exit();
}else if($_GET[‘tag’]){
$name=$_GET[‘tag’];
header(‘HTTP/1.1 301 Moved Permanently’);//发出301头部
header(‘Location: ‘.bloginfo(‘url’).’/tag/’.$name.’/’);
exit();
}[/code]
除此之外还要到修改WP-include中的class-wp.php进行中文转码,之前几篇文章都写过了可以跳到以下文章查看第4步骤:
https://sdeno.com/使用wordpress-url-rewrite解决搜索分页问题及不在使用404页面实现/

这样就行了。

文章来源:个人随笔 香格里拉seo (www.xgllseo.com)转载请注明,请尊重版权。
没有标签
首页      前端资源      wordpress教程      wordpress默认短链接自动跳转自定义固定链接

随身笔记

wordpress默认短链接自动跳转自定义固定链接
在WIN下的IIS上发布wordpress的同学都知道是件很麻烦的事情尤其是还要进行自定义固定链接修改的时候更是麻烦,但是就是在这样情况下反而我还学到了很多东西喜忧参半啊。 在IIS修改自定义…
扫描二维码继续阅读
2013-01-18