one piece

抛弃ISAPI_Rewrite使用404伪静态(iis主机)

今天把apache+php+mysql的环境转到了
windows 下的iis+php+mysql
速度还行,但有个问题
如果使用ISAPI_Rewrite规则来为wordpress伪静态的话,
这规则会影响其他站点(影响也不大,只是url不能含有中文)
我自己觉得麻烦,网上搜索了下
发现个不错的用404来伪静态

这个方法是通过IIS的自定义404页面实现,首先在wordpress根目录下新建一个wp-404Rewrite.php,然后把下面的代码复制到里面去:
// This is the default file for the site. Usually index.php
$default = 'index.php';

// The name of this file.
// Set this value for the URL in Custom Error Properties of your website in IIS.
// Goto: IIS Manager > Websites > [Site Name] > Properties > Custom Errors >
// 404 & 404;2 & 404;3 > URL (Requires a '/' prefix in IIS).
$thisfile = '404-handler.php';

$_SERVER['ORIG_PATH_TRANSLATED'] = str_replace($thisfile, $default, $_SERVER['ORIG_PATH_TRANSLATED']);
$_SERVER['SCRIPT_FILENAME'] = str_replace($thisfile, $default, $_SERVER['SCRIPT_FILENAME']);
$_SERVER['ORIG_PATH_INFO'] = str_replace($thisfile, $default, $_SERVER['ORIG_PATH_INFO']);
$_SERVER['SCRIPT_NAME'] = str_replace($thisfile, $default, $_SERVER['SCRIPT_NAME']);
$_SERVER['PHP_SELF'] = str_replace($thisfile, $default, $_SERVER['PHP_SELF']);
$_SERVER['PATH_INFO'] = false;

$qs =& $_SERVER['QUERY_STRING'];
$ru =& $_SERVER['REQUEST_URI'];
$pos = strrpos($qs, '://');
$pos = strpos($qs, '/', $pos + 4);
$_SERVER['URL'] = $ru = substr($qs, $pos);
$qs = trim(stristr($ru, '?'), '?');

// Required for WordPress 2.8+
$_SERVER['HTTP_X_ORIGINAL_URL'] = $ru;

// Fix GET vars
foreach ( $_GET as $var => $val ) {
if ( substr($var, 0, 3) == '404') {
if ( strstr($var, '?') ) {
$newvar = substr($var, strpos($var, '?') + 1);
$_GET[$newvar] = $val;
}
unset($_GET[$var]);
}
break;
}
include($default);
?>

在IIS里的“自定义错误”Tab处添加修改404的错误指向,“消息类型”选择“URL”,地址填上:/404Rewrite.php,然后访问博客主页,看看各个页面是不是可以了?
我用firebug和google webmastertools查看状态,都是200,并非404,所以不用担心google不收录这样的页面。

Created By: sb123

Form Page: 抛弃ISAPI_Rewrite使用404伪静态(iis主机)


533 Responses to “抛弃ISAPI_Rewrite使用404伪静态(iis主机)”

  1. 情趣内衣
    十月 15th, 2010 16:25
    4

    😆 感谢博主的分享 学习中

  2. 实木家具
    十月 8th, 2010 00:16
    3

    这样的方法值得一试的,不过这样的页面多了不好吧……

  3. 超级团
    十月 6th, 2010 14:54
    2

    这个模块确实比较好用

  4. 德意
    十月 3rd, 2010 22:51
    1

    许久没有搞过这东西了

Leave a Reply

You must be logged in to post a comment.