<?php
$qs = $_SERVER['QUERY_STRING'];
$_SERVER['REQUEST_URI'] = substr($qs, strpos($qs, ':80')+3);
$_SERVER['PATH_INFO'] = $_SERVER['REQUEST_URI'];
include('index.php');
?>
然后在主机管理里面将404跳转指向这个wp404.php文件,然后后台就可以设置你的permentlink了。但是url只能是英文字母或者数字,字符。
Update: 找到了url为其它字符的解决方法,打开wp-includes/classes.php,然后做如下修改:
wp-include/classes.php中(44-50行)
if ( isset($_SERVER['PATH_INFO']) )
$pathinfo = $_SERVER['PATH_INFO'];
else
$pathinfo = ”;
$pathinfo_array = explode(”?”, $pathinfo);
$pathinfo = str_replace(”%”, “%25″, $pathinfo_array[0]);
$req_uri = $_SERVER['REQUEST_URI'];
替换为下(转换$_SERVER['PATH_INFO']和$_SERVER['REQUEST_URI']的编码):
if ( isset($_SERVER['PATH_INFO']) )
$pathinfo = mb_convert_encoding($_SERVER['PATH_INFO'], "utf-8", "GBK");
else
$pathinfo = ”;
$pathinfo_array = explode(”?”, $pathinfo);
$pathinfo = str_replace(”%”, “%25″, $pathinfo_array[0]);
$req_uri = mb_convert_encoding($_SERVER['REQUEST_URI'], "utf-8", "GBK");
注意上面的双引号,写博客的时候都是英文半角的双引号,但是发到博客里面就变了,应该是wordpress的一个小bug
没有评论:
发表评论