ЧПУ (Человекопонятный URL).

Возможно, с человекопонятностью дела обстоят не очень, но тут важен чуть другой аспект. Давайте рассмотрим его на конкретном примере для лучшего понимания.

Если создать документ в URL-е http://site.name/f/o/l/d/e/r/file-name.htm и разместить внутри код

<?php pr($_s['loc']); ?>

а потом обратиться к чуть другому URL-у http://site.name/f/o/l/d/e/r/file-name_a_b_c_d_e.htm, то это выдаст на экран некий массив, работающий с ЧПУ. В нём, среди прочего, есть интересное:

$_s['loc']=Array
(
    [
'cont'] => './data/content',
    [
'http'] => 'http://',
    [
'host'] => 'site.name',
    [
'path'] => '/f/o/l/d/e/r/',
    [
'file'] => 'file-name',
    [
'vars'] => Array
        (
            [
0] => 'a',
            [
1] => 'b',
            [
2] => 'c',
            [
3] => 'd',
            [
4] => 'e',
        ),
    [
'base'] => 'http://site.name/',
    [
'fold'] => 'http://site.name/f/o/l/d/e/r/',
    [
'this'] => 'http://site.name/f/o/l/d/e/r/file-name',
    [
'here'] => 'http://site.name/f/o/l/d/e/r/file-name.htm',
    [
'full'] => 'http://site.name/f/o/l/d/e/r/file-name_a_b_c_d_e.htm',
);

Как можно видеть, все элементы URL-а, а таже нужные в работе их комбинации, оформлены в отдельные именованные элементы массива. Из которых далее можно собирать как абсолютные URL-ы, так и относительные (для поиска документа в файловой структуре сервера, к примеру).

При размещении в документе какого-то сложного скрипта, которому необходимо передавать данные между генерируемыми им страничками, весьма полезен массив $_s['loc']['vars'] (назовём его массивом параметров). Который может быть как совершенно пустым, так и содержать большое количество элементов. Где располагаются эти элементы в URL-е странички, должно быть понятно.

На массив параметров распространяются те же правила, что и на имена файлов. Только цифры, буквы латинского алфавита, и дефис. Которым можно поделить каждый параметр ещё на множество частей, или хотя бы на две: имя переменной и её значение.

Реакция навигации на массив параметров.

Обратите внимание, что при подсветке элементов меню массив параметров во внимание не берётся. Два совершенно разных URL-а:

  1. https://nanocms.name/basic/url.htm
  2. https://nanocms.name/basic/url_alternative.htm

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