$ _SERVER не работает? альтернатива?

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

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

 $_SERVER['HTTP_HOST'] 

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

 var_dump($_SERVER); 

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

  1. $ _SERVER ['PHP_SELF'] для расположения файла сценария
  2. $ _SERVER ['SERVER_NAME'] для имени хоста

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

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

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

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

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

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

PS Использование unsanitized $_SERVER["PHP_SELF"] может представлять угрозу безопасности .

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

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

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