Подтвердить что ты не робот

$ _SERVER [ "SCRIPT_URI" ] не работает? альтернатива?

Это нечетно, но по какой-то причине $_SERVER["SCRIPT_URI"] не вернет имя домена, когда я нахожусь в дочерних/подстраницах, но будет работать только на главной странице. Не уверен, что из-за script (WordPress) или хоста, но, пожалуйста, можете ли вы предложить любое надежное решение для получения имени домена с PHP?

4b9b3361

Ответ 1

Если вам нужно имя домена, используйте:

$_SERVER['HTTP_HOST']

Ответ 2

В случае сомнений

var_dump($_SERVER);

Ответ 3

В зависимости от того, что вы хотите, я бы воспользовался одним из следующих вариантов:

  • $_ SERVER ['PHP_SELF'] для расположения файла script
  • $_ SERVER ['SERVER_NAME'] для имени хоста

Из документов php

EDIT: Возможно, PHP_SELF не самый лучший. См. Комментарии.

Ответ 4

Это может быть связано с перезаписи URL, вы можете попробовать $_SERVER ['REQUEST_URI'] вместо этого, если вам нужен путь, который был вызван в URL-адресе.

Ответ 5

var_dump($_SERVER) и посмотрите, какие у вас варианты.

P.S. Использование unsanitized $_SERVER["PHP_SELF"] может быть угрозой безопасности.

Ответ 6

Кроме того, SCRIPT_URI не существует, правильный синтаксис REQUEST_URI:

echo $_SERVER["REQUEST_URI"]; Он возвращает весь путь без хоста и домена.

Ответ 7

Если ваш браузер форматирует JSON документы красиво и никакого вывода не происходит, вставка следующего приведет к чему-то более читаемому, чем var_dump:

header('Content-Type: application/json');die(json_encode($_SERVER));

phpinfo() также предоставит список всех значений $_SERVER и многое другое!