• 生活见闻 09.06.2009

    第一种方案:

    不需要第三方插件cos-html-cache支持,利用服务器有自定义404错误页面的功能解决问题,但前提是你的服务器或者主机有自定义404错误页面的功能。如果是服务器那肯定可以支持,如果是虚拟主机,需你的服务器供应商提供自定义404错误页面选项。

    你只需创建一个404错误页面,并且写入下列4行代码即可简单优雅的实现无插件完美支持windows iis主机的永久固定链接的伪静态化地址格式。
    原来的代码只有四行,供参考:

    <?php
    $qs = $_SERVER['QUERY_STRING'];
    $_SERVER['REQUEST_URI'] = substr($qs, strpos($qs, ‘:80′)+3);
    $_SERVER['PATH_INFO'] = $_SERVER['REQUEST_URI'];
    include(’index.php’);
    ?>

    下面这串代码是经过优化修改的,对搜索引擎不会产生影响,原来的index.php链接还可以使用。<?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’);
    ?>

    具体设置步骤:

    新建一个记事本,在里面写入上面代码,保存,连同txt格式重新命名为wp-404-handler.php。将wp-404-handler.php上传到网站根目录。
    设置404自定义错误指向wp-404-handler.php,一般来说,绝大多数服务器控制面板均提供该选项。

    进入wordpress管理后台,设置(Options)-永久链接(Permalinks),你就当自己的主机是linux主机使好了,任意、随便设置自己喜欢的伪静态地址格式及静态地址后缀。

    例如:

    /y%year%/%post_id%.html
    /%year%/%monthnum%/%post_id%.html
    /%year%/%monthnum%/%postname%.html

    第二种方案:

    无Rewrite用cos-html-cache实现静态化
    要求:使用下载cos-html-cache 1.1

    具体设置步骤:

    下载cos-html-cache 1.1 ,解压,传到/wp-content/plugins/目录,在后台”插件”中启用”cos-html-cache”

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

    下载404代码,保存为404.asp。并且上传到网站的跟目录,设置404自定义错误指向404.asp

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

    总结:
    第一种方案比较简单,可以显现无index.php的永久链接。第二种方案较复杂点,但是可以生成静态页面,且可以实现无index.php的永久链接。

    Posted by buflyon1 @ 9:16 下午

  • Comments are closed.