1

我正在尝试获取 URL 路径并将其保存为变量...

$setURL = true;
$getDomain = "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
$getSubdomain = "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];

if ($setURL === true) {
    $result = 'http://'.parse_url($getDomain, PHP_URL_HOST) . '/';
    echo 'get domain';
} else {
    $result = 'http://'.parse_url($getSubdomain, PHP_URL_HOST).parse_url($getSubdomain, PHP_URL_PATH);
    echo 'get subdomain';
}

$siteURL = $result;

所以基本上如果我定义了变量 $setURL = true; 它将返回简单域的正确 URL ... http://domain-name.com

但是 else 不能像我想的那样工作...... else 那里有子域。所以如果我设置 $setURL = false; 它应该返回以下... http://domain-name.com/path/

但不幸的是,它返回的不止于此......它返回我输入的任何内容作为 URL...... http://domain-name.com/path/something/index.php它将返回所有这些作为 URL!

请帮我解决这个问题,因为我不知道如何做到这一点。

4

1 回答 1

2

形式上,子域位于域名之前。例如,在 中ftp.debian.usftp是子域。

听起来您想要的是 URI 中的第一个路径。您可以使用 PHP 的 explode() 方法来抓取路径中的第一段。

$uriparts = explode($_SERVER['REQUEST_URI']) // = '/path/to/somewhere/index.html'
$path = $uriparts[1] // = 'path'
于 2013-02-06T04:30:08.440 回答