IIS下__SELF__不能获取值

浏览:1545 发布日期:2013/11/19 分类:技术分享 关键字: __SELF__为空 $_SERVER['REQUEST_URI']为空
前几天遇到如题问题,看到有人发布了解决方法。于是测试了下没有生效。不知道是我测试的方法不对,还是怎么回事。在这里分享一个更简单的方法。
打开TP定义常量__SELF__文件Dispatcher.class.php找到
define('__SELF__',strip_tags($_SERVER['REQUEST_URI']));
在该行代码上面,放入下面代码即可解决。if ( empty( $_SERVER['REQUEST_URI'] ) ) {

    if (isset($_SERVER['HTTP_X_ORIGINAL_URL'])) {
        $_SERVER['REQUEST_URI'] = $_SERVER['HTTP_X_ORIGINAL_URL'];
    }
    else if (isset($_SERVER['HTTP_X_REWRITE_URL'])) {
        $_SERVER['REQUEST_URI'] = $_SERVER['HTTP_X_REWRITE_URL'];
    } else {
        if ( !isset($_SERVER['PATH_INFO']) && isset($_SERVER['ORIG_PATH_INFO']) )
            $_SERVER['PATH_INFO'] = $_SERVER['ORIG_PATH_INFO'];
        if ( isset($_SERVER['PATH_INFO']) ) {

            if ( $_SERVER['PATH_INFO'] == $_SERVER['SCRIPT_NAME'] )

                $_SERVER['REQUEST_URI'] = $_SERVER['PATH_INFO'];

            else

                $_SERVER['REQUEST_URI'] = $_SERVER['SCRIPT_NAME'] . $_SERVER['PATH_INFO'];

        }
        if (isset($_SERVER['QUERY_STRING']) && !empty($_SERVER['QUERY_STRING'])) {

            $_SERVER['REQUEST_URI'] .= '?' . $_SERVER['QUERY_STRING'];

        }

    }

}
PS:由于TP以后会更新版本,建议不要直接修改TP核心文件。
最佳答案
评论() 相关
后面还有条评论,点击查看>>