WP中去掉固定链接中的index.php和category

本文是针对使用Windows主机的用户来说的, 如果你使用Windows主题搭建了WordPress程序, 并设置了非默认状态的固定链接形式的话, 那么, 在网站的链接URL中, 就会出现index.php问题, 这是Windows主机的一个通病, 这里告诉你去掉index.php的完美解决方法。

本人也是新开始用WordPress,对于WordPress固定链接个性化一直都不是很清楚,不得已在度娘上苦苦搜索,特别是那个404的代码,试了好几个才可以的

具体操作步骤如下:

1, 新建一个记事本文件, 写入以下代码, 并保存, 连同.txt格式重新命名为404.php;

//*具体代码如下,此行不用复制
   <?php 
header('Status : 200 OK');
$ori_qs = $_SERVER['QUERY_STRING'];
$pattern = '/[^;]+;[^:]+:\/\/[^\/]+(\/[^\?]*)(?:\?(.*))?/i';
preg_match($pattern,$ori_qs,$matches);
$_SERVER['PATH_INFO']    = $matches[1].'?'.$matches[2];
$_SERVER['REQUEST_URI'] = $_SERVER['PATH_INFO'];
$query_args              = explode('&',$matches[2]);
unset($_GET);
foreach ($query_args as $arg)
{
$the_arg = explode('=',$arg);
$_GET[$the_arg[0]] = $the_arg[1];
}
include('index.php');
?>
//*代码结束行,此行不用复制


2, 在主机服务器的管理控制面板中, 设置404自定义错误指向404.php;

3, 完成以上步骤后,在WordPress的后台 – 设置(Options) – 固定链接(Permalinks)中重新设置你希望使用的永久链接形式就可以了.

通过以上三步简单的设置, 你的Windows主机就可以和Linux主机一样, 设置固定链接时就不会再出现index.php了。

------------------------------------------------------------------------------------------

同Wordpress设置固定链接时,想尽办法删除固定链接里的前缀“index.php”一样;很多朋友希望把分类链接地址里的前缀“category”去掉——如此这般看起来顺眼多了。

分类地址举例,原来的固定链接地址、去掉“category”后的链接分别如下。

原来链接: http://go.niuren.com/category/fun/

变成链接: http://go.niuren.com/fun

去除固定链接地址里的“category”的办法很多,这里介绍三个简单易用的,起个抛砖引玉的作用。一是在Wordpress后台固定链接里设置;二是通过修改Wordpress核心函数实现;三是通过Wordpress插件实现。【笔者是根据第一种方法:修改固定链接设置,去掉分类链接前缀category设置成功的】

一、修改固定链接设置,去掉分类链接前缀category

登录你的Wordpress后台,打开固定链接/永久链接设置项。在“可选设置”里的“分类地址前缀”里输入半角字符: “.”;保存即可去掉分类前缀category。

二、借助Wordpress插件,去掉分类前缀category

1、WP No Category Base:作者iDope,是为去除固定链接中分类链接里的category而开发出来的一款wordpress插件,被下载近5万次。安装启用此插件后,对原来的分类地址做了301跳转,对SEO优化有好处,把降权风险降到最低。
2、No category parents:作者milardovich,上面插件的升级版,不仅能去掉分类链接的前缀category,还能去掉父分类 parent-category。例如能把“/category/parent-category/my-category/”换成“/my-category/”形式。

三、修改Wordpress函数,去掉分类前缀category

1、找到你Wordpress博客wp-includes文件夹下的category-template.php。

2、打开此文件,搜索(get_category_link()函数里):

$catlink = $wp_rewrite->get_category_permastruct();


在其后,另起一行加入:

$catlink = str_replace('/category' , '' , $catlink);


代码作用是,使用字符串替换函数,把获取分类链接函数的分类链接里的/category替换掉。达到去掉分类链接前缀/category的目的。

3、保存上传到服务器即可。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值