Page 1 of 1

Вложенные урлы

Posted: Wed Apr 16, 2014 5:18 am
by Santyago
Допустим адрес страницы такой
site.ru/razdel1/stranica2.html
Оказывается эта страница также доступна по адресу
site.ru/razdel1654564654654еще-все-что захотите/stranica2.html

Как это лечится?

Re: Вложенные урлы

Posted: Wed Apr 16, 2014 8:20 am
by guro
Здесь возможное решение.

Re: Вложенные урлы

Posted: Thu May 08, 2014 7:08 am
by Santyago
guro wrote:Здесь возможное решение.
Спасибо, продолжу в эту тему.

допустим есть такие страницы
раздел1/страница1
раздел1/страница2
И если я создам вот такие страницы
раздел2/страница1
раздел2/страница2
Тогда вызывая их будет ошибка
Not Found
The requested URL was not found on this server.
Именно не страница ошибки CMS, а такая.

И еще - страница
раздел2/страница1.html
также доступна по адресу
раздел2/страница1/
и
раздел2/страница1

check_alias

Code: Select all

global $gCms;
$page_alias = explode("/", preg_replace("|^\/(.*?)\/$|", "$1", $_SERVER['REQUEST_URI']));
$page_alias = str_replace($gCms->config['page_extension'], "", $page_alias[count($page_alias)-1]);
$manager =& $gCms->GetHierarchyManager();
$node =& $manager->sureGetNodeByAlias($page_alias);
if (!isset($node)) return;
$content =& $node->GetContent();
if ($content !== FALSE && is_object($content)) {
   $url = $content->GetUrl();
}
$url = str_replace($gCms->config['root_url'], "", $url);
if ($url != $_SERVER['REQUEST_URI'] && $url != $_SERVER['REQUEST_URI'] . $gCms->config['page_extension']) {
  ErrorHandler404();
}