以前在用PJ时就很欣赏WP的永久链接系统,等到自己换成WP后,突然发现我的主机空间不能正常使用WP的永久链接;原因是Windows/IIS主机对PHP程序支持,尤其是.htaccess和Rewrite支持不好,后来找了N多方法后,终于找到了一个比较简单的解决方法。
不需要你懂得IIS下的httpd.ini配置规则,只要复制粘贴即可。
只要你的虚拟主机空间支持自定义404错误页即可,方法:
1.新建一个记事本,在里面写入下面代码,保存,连同txt格式重新命名为404.php。将404.php上传到你的网站根目录。
< ?php header("HTTP/1.1 200 OK"); $ori_qs = strtolower($_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自定义错误指向wp-404-handler.php,一般来说,绝大多数服务器控制面板均提供该选项。
3.进入WordPress2.7管理后台,“设置”→“永久链接”,随意设置自己喜欢的伪静态地址格式及静态地址后缀。
例如:
/y%year%/%post_id%.html
/%year%/%monthnum%/%post_id%.html
/%year%/%monthnum%/%postname%.html
我用的格式是:/%Category%/%postname%/
为了方便搜索引擎收录/SEO,请注意代码开头一句:header("HTTP/1.1 200 OK");
据说去掉后也不影响SEO,具体的我也不清楚,望以后能有高人解释。
注意:postname不能太长,否则无法正常显示单篇日志。
请自行将代码中的全角字符更改为半角字符!~
点击这里查看txt版本
请自行另存为php文件
请自行另存为php文件
Warning: preg_match() [function.preg-match]: Unknown modifier '/' in F:\websites\www\blog\wp-404-handler.php on line 6
正规表达式不能用?
# $pattern = '/[^;]+;[^:]+:\/\/[^\/]+(\/[^\?]*)(?:\?(.*))?/i';
wp会将半角引号自动转换成全角的,所以要手动将它改过来才行。
如果还是有问题,可以留下邮箱,我将404.php发给你,
或者参照这篇文章http://www.imwls.com/404-wordpress-permalink-tolower-url/
把一个简单的问题搞的这么复杂,404定向会对引擎有影响的
IIS下目前最好的办法就是使用404,Google Site:www.imwls.com,你会发现搜索引擎对页面收录没有任何影响,包括其它蜘蛛/爬虫在内,呵呵
能交流下wordpress下永久链接的设置吗
希望得到你的帮助,QQ: 249183165
我用了这种办法,还是去不了index.php,去了以后打不开网站,这是怎么回事能,请高手赐教!
我上面的代码里有全角字符,需要转成半角字符,而且链接里不能含有中文(如果需要支持中文,请看“IIS下配置WordPress永久链接支持中文完美版”),如果实在不知道怎么弄话请留下邮箱,我会将404.php和classes.php发给你;最简单的解决方法是更新到wordpress2.9 beta1,程序原生支持IIS的伪静态。
路过~~留痕
你好,能麻烦您将您的404.php文件发给我吗? 我的邮箱390888451@qq.com 谢谢您了
已发,请查收!
不错的站,路过看下
还可以
Warning: preg_match() [function.preg-match]: Unknown modifier '/' in D:\wwwroot\404.php on line 6
..麻烦你发给我一份 404.php好么? 非常感谢!d10000d10000@126.com
太感谢了 已经ok了
博主人真好!我收藏您的博客了
@你好呵呵哦
客气了。
很详细的介绍,用WP建站,不如选LINUX主机为好
我的index.php无论怎样都去不掉,请帮下忙,或者给发份404.php,究竟是404.php,还是wp-404-handler.php,麻烦了,邮箱250601354@qq.com
@Xqiang 对不起啊,是我写错了,应该是在主机控制面板里指向404.php,404代码请看这http://www.imwls.com/wp-content/uploads/404.txt,保存为utf-8格式。
[...] 前面提到过相关方法http://www.imwls.com/wordpress-iis-cut-index/但是今天在用站长工具查询博客中死链时发现,所有的中文Tag页面均是跳转到我的主题404页面,Google了之后,终于找到一个解决的办法,贴出来分享,让更多在Windows主机下挣扎的同胞们玩好WordPress。 [...]
◎ 這是 Pingback/Trackback, 小牆懷疑這可能是 Spam!
[...] 前面提到过相关方法http://www.imwls.com/wordpress-iis-cut-index/但是今天在用站长工具查询博客中死链时发现,所有的中文Tag页面均是跳转到我的主题404页面,Google了之后,终于找到一个解决的办法,贴出来分享,让更多在Windows主机下挣扎的同胞们玩好WordPress。 [...]