Содержимое
Поиск
404 ошибка
В комопнентах показывается 404 ошибка и отдается соответтсвующий статус если если страница не существует.
Для этого при вызовде комопнента должен быть вклчюен соовтетствующий параметр "SET_STATUS_404" => "Y" и "SHOW_404" => "Y"
<?
require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/header.php");
$APPLICATION->SetPageProperty("title", "");
$APPLICATION->SetPageProperty("keywords", "");
$APPLICATION->SetPageProperty("description", "");
$APPLICATION->SetTitle("Демо база знаний");
$APPLICATION->SetDirProperty('MDBASE_ROOT_URL', '/doc/');
$APPLICATION->IncludeComponent(
"bxmaker:mdbase",
".default",
[
"IBLOCK_TYPE" => "doc",
"CACHE_TYPE" => "A",
"CACHE_TIME" => 60 * 60 * 24 * 10,
"CACHE_GROUPS" => "Y",
"COMPONENT_TEMPLATE" => ".default",
"SEF_MODE" => "Y",
"SEF_FOLDER" => "/doc/",
"COMPOSITE_FRAME_MODE" => "A",
"COMPOSITE_FRAME_TYPE" => "AUTO",
"CANONICAL_URL" => "",
"SET_STATUS_404" => "Y",
"SHOW_404" => "Y",
"FILE_404" => "",
"MESSAGE_404" => "",
"SEF_URL_TEMPLATES" => [
"index" => "",
"item" => "#IBLOCK_CODE#/",
"section" => "#IBLOCK_CODE#/#SECTION_CODE_PATH#/",
"detail" => "#IBLOCK_CODE#/#SECTION_CODE_PATH#/#ELEMENT_CODE#/",
"search" => "#IBLOCK_CODE#/search/",
]
],
false
);
?>
<?
require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/footer.php"); ?>
Страницы без слеша
Чтобы страницы без слеша нормально обрабатытывались, нужно чтобы в конец автоматически добавлялся слеш, для этого нужно добавить правило в файл .htaccess
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
#склейка /dsf -> /dsf/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/[^/]+$
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*[^/])$ $1/ [L,R=301]
#... другие инструкции
</IfModule>```