예제 #1
0
파일: Request.php 프로젝트: hubs/yuncms
 /**
  * 初始化请求的资源标识符
  *
  * <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.');
     }
 }