1. Добавляем правило в /urlrewrite.php (самым последним и SORT ставим побольше)[CODE] 12 => [
'CONDITION' => '#^/([^/]+)(/[^?]*)?#',
'RULE' => 'region=$1&url=$2',
'ID' => 'myId',
'PATH' => '/region.php',
'SORT' => 120,
],
[/CODE]2. Добавляем файл /region.php[CODE]<?
$region = $_REQUEST['region'];
$arRegions = include($_SERVER['DOCUMENT_ROOT'] . "/regions.php");
if (array_key_exists($region, $arRegions)) {
$url = $_REQUEST['url'];
$foundQMark = strpos($url, '?');
if ($foundQMark) {
$url = substr($url, 0, $foundQMark);
}
if (substr($url, -1)) {
$url .= '/';
}
$_SERVER['REGION_TITLE'] = $arRegions[$region]['title'];
$page = $_SERVER['DOCUMENT_ROOT'] . $url . 'index.php';
if (file_exists($page)) {
unset($_GET['region']);
unset($_GET['url']);
$_SERVER['QUERY_STRING'] = $_SERVER['REDIRECT_QUERY_STRING'];
$_SERVER['REQUEST_URL'] = preg_replace('|/' . $region . '|', '', $_SERVER['REQUEST_URL'], 1);
$_SERVER['REDIRECT_URL'] = preg_replace('|/' . $region . '|', '', $_SERVER['REDIRECT_URL'], 1);
$_SERVER['SCRIPT_URL'] = preg_replace('|/' . $region . '|', '', $_SERVER['SCRIPT_URL'], 1);
$_SERVER['SCRIPT_URI'] = preg_replace('|/' . $region . '|', '', $_SERVER['SCRIPT_URI'], 1);
$_SERVER['REDIRECT_SCRIPT_URL'] = preg_replace('|/' . $region . '|', '', $_SERVER['REDIRECT_SCRIPT_URL'], 1);
$_SERVER['REDIRECT_SCRIPT_URI'] = preg_replace('|/' . $region . '|', '', $_SERVER['REDIRECT_SCRIPT_URI'], 1);
include_once ($page);
}
} else {
unset($_SESSION['OPERATOR_LOGIN']);
if (file_exists($_SERVER['DOCUMENT_ROOT'] . '/404.php')) {
include_once($_SERVER['DOCUMENT_ROOT'] . '/404.php');
}
}
[/CODE]3. Добавляем файл /regions.php, его будем редактировать по необходимости.[CODE]return array (
'moscow' =>
array (
'title' => 'Москва',
),
);
[/CODE]Теперь при вызове site.ru/moskow/page2/ будет подставляться site.ru/page2/, а в $_SERVER['REGION_TITLE'] будет "Москва". Дальше - просто.