Суперглобальный массив $_SERVER php имя скрипта главная страница

Возвращаемся к суперглобальному массиву PHP $_SERVER (ранее: $HTTP_SERVER_VARS).

Сегодня нашей задачей будет узнать имя исполняемого скрипта, имя скрипта, передаваемое при вызове из адресной строки и, посредством полученной, информации определить находится ли посетитель на главной странице сайта или же на одной из внутренних.

Часто Вы сами прекрасно знаете какая страницы открывается при прямом доступе к сайту, например когда посетитель набрал в адресной строке http://weblomaster.ru

Ваша стартовая (индексная страница) по умолчанию может быть называться index.html, index.htm, index.shtml, index.php и так далее. Дополнительную настройку индексной страницы можно провести с помощью директивы DirectoryIndex в файле .htaccess:

DirectoryIndex start.php index.php index.html

В этом примере задана последовательность возможных индексных страниц – если недоступна или отсутствует страница start.php загрузится страница index.php и так далее.

Но давайте вернемся к $_SERVER и определению с его помощью имени вызываемого скрипта. В ситуации когда Вы используете какой-то движок для управления контентом, CMS определить находится ли посетитель на главной странице или на внутренней уже не так просто.

Итак, чтобы видеть имя вашего скрипта открывая его каждый раз в браузере, необходимо в тело самого скрипта дописать код:

echo $_SERVER['SCRIPT_NAME'];

Этот приём нагляден и может быть полезен при отладке, в результате на странице должно появится дополнительный текст, например:
/index.php

С другой стороны, если Вы откроете Ваш скрипт с использованием дополнительных параметров, например index.php?id=75, текст отображаемой вышеприведенным кодом, не изменится.
А если Ваша CMS использует mod_rewrite – замену традиционных URL с параметрами и именами скриптов на более красивые, «человекопонятные» урл (ЧПУ)?
В этом случае определить на главной странице посетитель или на внутренней, с помощью SCRIPT_NAME может не представляться возможным.

В этом случае мы можем использовать другой элемент массива $_SERVER:
echo $_SERVER['REQUEST_URI'];

В этом случае скрипт отобразить не имя скрипта , а вариант обращения к нему из адресной строки.
То есть вариант обращения http://weblomaster.ru/ выведет просто косую черту , слеш:
/
А вариант обращения http://weblomaster.ru/seo_optimization_uri, выдаст:
/seo_optimization_uri

С этим уже можно работать. Например, написать приветствие, в «шапке» или «подвале» сайта тем, кто открыл главную страницу сайта:

<?
if($_SERVER['REQUEST_URI']=="/"){echo "Привет на главной!";}
?>

REQUEST_URI поможет, также, определить с тем, в какой директории находится посетитель.
Так при доступе к скрипту по URL http://weblomaster.ru/second_dir/, код echo $_SERVER['REQUEST_URI']; напечатает:
/second_dir/

Опубликовано 31.07.2013 в 19:34 · Автор Вебдизайнеру, сисадмину, вебмастеру · Ссылка
Рубрики: PHP программирование, Настройки хостинга · Теги: , , , , , , , , , , , , , ,