@ArturZip

Почему не работает 404 на разделах в битрикс?

Нужна помощь с обработкой 404 ошибки. Сайт на битриксе.
Например, если на страницах раздела:
https://сайт/uslugi/
https://сайт/information/
добавить после слеша символы:
https://сайт/uslugi/fgfhjdfgr На странице написано "Элемент не найден".
Но на главной странице и о компании перенаправляет на страницу 404.
Как это можно исправить?

Файл htaccess
Options -Indexes 
ErrorDocument 404 /404.php
 
<IfModule mod_php5.c>
  php_flag allow_call_time_pass_reference 1
  php_flag session.use_trans_sid off
 #php_value display_errors 1
  php_value mbstring.internal_encoding UTF-8
</IfModule>
 
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On

#del //
RewriteCond %{REQUEST_URI} ^(.*)/{2,}(.*)$
RewriteRule (.*) %1/%2 [R=301,L] 

#del www
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

#add /
RewriteCond %{REQUEST_URI} ^(.*/[^/\.]+)$
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1/ [R=301,L]

RewriteCond %{REQUEST_URI} ^(.*)/$
RewriteRule .* - [L]
RewriteCond %{ENV:REDIRECT_STATUS} 200
RewriteRule .* - [L]
RewriteCond %{REQUEST_METHOD} =GET
RewriteCond %{REQUEST_URI} ^(.*)/index.php$
RewriteRule ^(.*)$ %1/ [R=301,L] 

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !/bitrix/urlrewrite.php$
RewriteRule ^(.*)$ /bitrix/urlrewrite.php [L]
RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization}]
 
</IfModule>
 
<IfModule mod_dir.c>
DirectoryIndex index.php index.html
</IfModule>
 
<IfModule mod_expires.c>
ExpiresActive on
ExpiresByType image/jpeg "access plus 3 day"
ExpiresByType image/gif "access plus 3 day"
ExpiresByType image/png "access plus 3 day"
ExpiresByType text/css "access plus 3 day"
ExpiresByType application/javascript "access plus 3 day"
</IfModule>
  • Вопрос задан
  • 32 просмотра
Решения вопроса 1
gromdron
@gromdron
Bitrix developer
Зависит от того какой компонент вы используете.
Например для bitrix:news.detail есть параметры, определяющие поведение при запросе несуществующего элемента. Так получается что если параметр SHOW_404 установлен в false, то пользователю будет выведено сообщение "Элемент не найден", а в случае true - содержимое страницы 404
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы