Итого. Получилось. Делюсь опытом (отладочные сообщения разумеется комментируются):
//получаем текущую адресную строку браузера
$cur_page = $APPLICATION->GetCurPage();
echo "Адресная строка_элемент: ", $cur_page;
//получаем код текущего элемента
$element_id = CIBlockSection::GetList(null, Array('ELEMENT_CODE' => $arElement["CODE"]
, false , false);
//echo "<pre>"; print_r($arResult['CODE']
; echo "</pre>";
//получаем ID родительского раздела текущего элемента
$nav = CIBlockElement::GetElementGroups($arResult['ID'], false);
//echo "<br/>"; echo "<Text>Длина нава</Text>";
//echo $nav->SelectedRowsCount();
//получаем структуру родительских разделов до определенного в предыдущем пункте раздела
$SectionID = 0;
if ($ar_group = $nav->Fetch()) $SectionID = $ar_group['ID'];
$navChain = CIBlockSection::GetNavChain(13, $SectionID);
$realNavChain = "";
while ($arNav=$navChain->GetNext()):
//echo "<pre>"; print_r($arNav); echo "</pre>";
//echo $arNav['CODE'];
//echo '/';
//убираем лишнее из символьного кода элемента (из подраздел-1/подраздел1-1 оставляем подраздел1-1)
$arrurl = explode("/", $arNav['CODE']
;
$arrlast = end($arrurl);
//echo $arrlast;
//приводим правильный адрес страницы к приличному виду:
$realNavChain = $realNavChain.$arrlast."/";
endwhile;
$realNavChain_full = "/what_teach/".$realNavChain.$arResult['CODE'];
$path = $arNav['CODE'];
//echo $path;
echo "Реальная адресная строка_элемент: ".$realNavChain_full;
//проверка на совпадение адресов:
if ($cur_page==$realNavChain_full) { //если "да" - выводим чего нам там надо } else {выводим 404 ошибку}