程序员人生 网站导航

Wordpress静态化设置:windows主机伪静态去除

栏目:WordPress时间:2014-04-19 01:19:18

  网(LieHuo.Net)教程 风云博客以前用的主机一直都是国外的免费主机,速度慢不说,还经常打不开。尤其是文章写的一多帐号就被k。网站搬来搬去,很是麻烦。痛定思痛,wboke下定决心,把博客搬回了国内。购买了国内的win主机,给风云博客找了一个固定的家。搭建好了博客,其实也已经考虑好了以后换其它主机的退路。所以还是很保守的暂时选择了域名/post_id.html”,比如http://www.wboke.info/123.html作为博客的永久链接地址。

  为了去掉wordpress博客文章连接地址中嵌入的index.php格式,在网上一直苦苦搜索,知道有个方法可以用ISAPI_Rewrite组件实现类似linux主机apache环境的mod_rewrite的url rewrite地址重写功能,但必须要拥有服务器上运行该组件的权限,但win主机大多无此功能,只好另想办法。

  经过一段时间的苦苦寻觅,终于找到了win虚拟主机不需任何wordpress插件,不需要第三方组件完美的wordpress伪静态设置方法。当然,前提条件是服务器提供商的控制面板有自定义404错误页面的选项。

  你只需创建一个404错误页面,并且写入下列几行代码即可简单方便的实现无插件完美支持windows主机的永久固定链接的伪静态化地址格式。去掉网页地址中的index.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’);
?>

   这样即可固定REQUEST_URI和PATH_INFO参量并且包括进去index.php,剩下的将交给wordpress完成任务。

  具体设置步骤:
  1.新建一个记事本,在里面写入上面代码,保存,连同txt格式重新命名为404.php.(文件名视你的主机支持的404错误指向的文件名为准,灵活运用),将这个文件上传到你博客空间的主目录。设置404自定义错误指向404.php,一般来说,绝大多数服务器控制面板均提供该选项。

  3.进入wordpress管理后台,设置(Options)-永久链接,你就当自己的主机是linux主机使好了,任意、随便设置自己喜欢的伪静态地址格式及静态地址后缀。我的固定链接格式是:/%post_id%.html。网址型式http://www.wboke.info/29.html

  推荐链接地址层次不要太深,并且伪静态化地址加上html,不过也有人推荐不要加上伪静态后缀,因为那样搜索引擎可能会认为那种地址是一个分类目录,而不是一个具体的网页,从而获得更高的搜索排名权重,现在wordpress个人博客也比较流行那种伪静态格式。

  不管怎样,你成功去掉了index.php!最后感谢英文作者einar 提供的天才设置方法!

  还有另外一种真正的静态化方法。第二种方案:用cos-html-cache实现静态化 要求:使用下载cos-html-cache 1.1

  具体设置步骤:

  下载cos-html-cache 1.1(http://downloads.wordpress.org/plugin/cos-html-cache.1.1.zip) ,解压,传到/wp-content/plugins/目录,在后台”插件”中启用”cos-html-cache”

  在”设置”永久选项中,自定义结构修改静态化的规则,例如我使用的是 /%post_id%.html

  下载404代码(见附件)。并且上传到网站的跟目录,设置404自定义错误指向404.asp

  在后台cos-html-cache 管理选项生成静态页面,就可以实现目的了。

  总结:

  第一种方案比较简单,可以显现无index.php的永久链接。第二种方案较复杂点,但是可以生成静态页面,且可以实现无index.php的永久链接。第二种方法,wboke试了几次,没有成功,只好选用第一种方法,实现了wordpress博客的网址静态化。

  转自:风云博客 地址:http://www.wboke.info/

------分隔线----------------------------
------分隔线----------------------------

最新技术推荐