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 に答える