如何去除WordPress的URL中的index.php

想用常规的修改wordpress url的方法将地址静态化,以前都是做的英文网站,发现这个版本的中文网站的url中必须包括一个index.php,很是不喜欢。想改成www.域名.com/文章名/ 的形式。试了一天,终于成功了。下面讲一下我去除wordpress中index.php的方法。

我的主机是win系统的,不支持apache的mod_rewrite功能,下面这个方法对我的博客有效。

1.新建一个txt文件,文件内容如下:

<?php
header('HTTP/1.1 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');
?>

将文件另存为404.php

2.到你的虚拟主机控制面板,设置404自定义错误指向404.php,这里我要说一下个重点,就是很多空间商的后台设置后不能及时更新,我的大概等了两个小时才有效。

如图:wordpress url

3.进入WordPress管理后台,点击设置——固定链接

可以看到有5种设置,和一个自定义结构,我选择自定义结构。http://www.leranl.com/%postname%/ 之后设置好自己自定义的网址样式。

Snap5

参数参考:

%year% 年份
%monthnum% 月份
%day% 日期
%hour% 小时
%minute% 分钟
%second% 秒
%post_id% 文章的ID
%category% 目录
%author% 作者
%postname% 文章名(需要自己在发布文章的时候填写)

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: