/** * 初始化请求的资源标识符 * * <pre>这里的uri是去除协议名、主机名的 * Example: * 请求: http://www.tintsoft.com/example/index.php?a=test * 则返回: /example/index.php?a=test * </pre> * * @throws Base_Exception 处理错误抛出异常 */ private static function _init_request_uri() { if (($request_uri = self::get_server('HTTP_X_REWRITE_URL')) != null) { self::$_request_uri = $request_uri; } elseif (($request_uri = self::get_server('REQUEST_URI')) != null) { self::$_request_uri = $request_uri; if (strpos(self::$_request_uri, self::get_server('HTTP_HOST')) !== false) { self::$_request_uri = preg_replace('/^\\w+:\\/\\/[^\\/]+/', '', self::$_request_uri); } } elseif (($request_uri = self::get_server('ORIG_PATH_INFO')) != null) { self::$_request_uri = $request_uri; if (($query = self::get_server('QUERY_STRING')) != null) { self::$_request_uri .= '?' . $query; } } else { throw new Base_Exception('[Base.Base_Request._init_request_uri] unable to determine the request URI.'); } }