改进Request类

This commit is contained in:
thinkphp
2016-05-20 16:14:22 +08:00
parent d4993fa37c
commit 1ad2f7af31

View File

@@ -218,7 +218,11 @@ class Request
$this->url = $url; $this->url = $url;
return; return;
} elseif (!$this->url) { } elseif (!$this->url) {
$this->url = $_SERVER[Config::get('url_request_uri')]; if (IS_CLI) {
$this->url = isset($_SERVER['argv'][1]) ? $_SERVER['argv'][1] : '';
} else {
$this->url = $_SERVER[Config::get('url_request_uri')];
}
} }
return true === $url ? $this->domain() . $this->url : $this->url; return true === $url ? $this->domain() . $this->url : $this->url;
} }
@@ -252,17 +256,20 @@ class Request
$this->baseFile = $file; $this->baseFile = $file;
return; return;
} elseif (!$this->baseFile) { } elseif (!$this->baseFile) {
$script_name = basename($_SERVER['SCRIPT_FILENAME']); $url = '';
if (basename($_SERVER['SCRIPT_NAME']) === $script_name) { if (!IS_CLI) {
$url = $_SERVER['SCRIPT_NAME']; $script_name = basename($_SERVER['SCRIPT_FILENAME']);
} elseif (basename($_SERVER['PHP_SELF']) === $script_name) { if (basename($_SERVER['SCRIPT_NAME']) === $script_name) {
$url = $_SERVER['PHP_SELF']; $url = $_SERVER['SCRIPT_NAME'];
} elseif (isset($_SERVER['ORIG_SCRIPT_NAME']) && basename($_SERVER['ORIG_SCRIPT_NAME']) === $script_name) { } elseif (basename($_SERVER['PHP_SELF']) === $script_name) {
$url = $_SERVER['ORIG_SCRIPT_NAME']; $url = $_SERVER['PHP_SELF'];
} elseif (($pos = strpos($_SERVER['PHP_SELF'], '/' . $script_name)) !== false) { } elseif (isset($_SERVER['ORIG_SCRIPT_NAME']) && basename($_SERVER['ORIG_SCRIPT_NAME']) === $script_name) {
$url = substr($_SERVER['SCRIPT_NAME'], 0, $pos) . '/' . $script_name; $url = $_SERVER['ORIG_SCRIPT_NAME'];
} elseif (isset($_SERVER['DOCUMENT_ROOT']) && strpos($_SERVER['SCRIPT_FILENAME'], $_SERVER['DOCUMENT_ROOT']) === 0) { } elseif (($pos = strpos($_SERVER['PHP_SELF'], '/' . $script_name)) !== false) {
$url = str_replace('\\', '/', str_replace($_SERVER['DOCUMENT_ROOT'], '', $_SERVER['SCRIPT_FILENAME'])); $url = substr($_SERVER['SCRIPT_NAME'], 0, $pos) . '/' . $script_name;
} elseif (isset($_SERVER['DOCUMENT_ROOT']) && strpos($_SERVER['SCRIPT_FILENAME'], $_SERVER['DOCUMENT_ROOT']) === 0) {
$url = str_replace('\\', '/', str_replace($_SERVER['DOCUMENT_ROOT'], '', $_SERVER['SCRIPT_FILENAME']));
}
} }
$this->baseFile = $url; $this->baseFile = $url;
} }