404 HTTP-кода в Joomla

Как вы делаете Joomla возвратом «реального» 404 кода? Я не могу понять, как это сделать! Я изменил htaccess.txt на .htaccess, включил плагин system /redirect и включил переписывание URL-адресов в глобальных параметрах Joomla.

Однако любой поддельный URL-адрес я просто перенаправляю на домашнюю страницу, даже на страницу ошибок Joomla по умолчанию.

Это также происходит даже на демо-сайте Joomla здесь: https://demo.joomla.org/badurl_fake

Далее тестирование:

Joomla Global Use Rewrite: OFF
Joomla htaccess.txt renamed: NO
Joomla redirect plugin enabled: NO

Это приводит к неправильному URL-адресу, возвращающему истинную ошибку 404

Joomla Global Use Rewrite: ON
Joomla htaccess.txt renamed: NO
Joomla redirect plugin enabled: NO

Это приводит к неправильному URL-адресу, возвращающему истинную ошибку 404

Joomla Global Use Rewrite: ON
Joomla htaccess.txt renamed: NO
Joomla redirect plugin enabled: YES

Это приводит к неправильному URL-адресу, возвращающему истинную ошибку 404

Joomla Global Use Rewrite: ON
Joomla htaccess.txt renamed: YES
Joomla redirect plugin enabled: YES

В результате плохой URL-адрес, возвращающий пользователя на домашнюю страницу

Joomla Global Use Rewrite: OFF
Joomla htaccess.txt renamed: YES
Joomla redirect plugin enabled: YES

В результате плохой URL-адрес, возвращающий пользователя на домашнюю страницу

Joomla Global Use Rewrite: OFF
Joomla htaccess.txt renamed: YES
Joomla redirect plugin enabled: NO

В результате плохой URL-адрес, возвращающий пользователя на домашнюю страницу

Итак, мне кажется, что htaccess является виновником. В моем тестировании в любое время присутствует .htacess, 404 перенаправляется на индексную страницу.

7 голосов | спросил user101289 29 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowMon, 29 Sep 2014 21:19:38 +0400 2014, 21:19:38

3 ответа


2

Это не ошибка, а ожидаемое поведение. Если вы перейдете к компонентам> Перенаправление в интерфейсе администратора Joomla, вы увидите список всех запросов URL-адресов, в результате чего будет 404. Joomla автоматически записывает их в этот компонент и перенаправляет запрос на домашнюю страницу.

Причина, по которой это происходит в два раза, заключается прежде всего в том, чтобы предотвратить отрицательный пользовательский опыт, уменьшив страницы ошибок, а во-вторых, чтобы предоставить администратору веб-сайта возможность отслеживать и вручную перенаправлять нужные конечные точки. Я приложил ссылку на документы Joomla, объясняющие более подробно.

http://docs.joomla.org/Help33:Components_Redirect_Manager

ответил Brian Bolli 29 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowMon, 29 Sep 2014 21:33:36 +0400 2014, 21:33:36
2

Вы можете настроить ошибку 404 (например, показать пользовательскую страницу или отправить где-то, кроме главной страницы), добавив файл PHP в ваш шаблон, назовите его error.php и поместите его в корневой каталог шаблона (рядом с index.php шаблона).

Внутри этого файла вы можете указать, что делать, например, отправить куда-нибудь на ваш сайт (обновить /SOMEWHEREINYOURSITE с нужным URL-адресом):

<?php
// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );

//example of a way to output the error code:
//echo $this->error->getCode();

if (($this->error->getCode()) == '404') {
    header('Location: /SOMEWHEREINYOURSITE');
}
?>

Метод 2:

Зная, что вы используете файл .htaccess (предположим, что вы используете сервер Apache), вы можете добавить определение того, что делать с ошибкой 404.

Поместите это вверху файла .htaccess:

ErrorDocument 404 /SOMEWHEREINYOURSITE

Как и в предыдущем методе, обновите /SOMEWHEREINYOURSITE с нужным URL-адресом.

ответил jackJoe 1 +04002014-10-01T21:37:06+04:00312014bEurope/MoscowWed, 01 Oct 2014 21:37:06 +0400 2014, 21:37:06
1

Я недавно видел это на нескольких сайтах и ​​только что обнаружил, что это происходит, когда сайт находится в автономном режиме, и вы вошли в интерфейс.

Когда сайт находится в сети, и вы составляете URL-адрес, вы получаете стандартную страницу с кодом состояния.

Когда сайт находится в автономном режиме и вы вошли в систему, вы переадресовываетесь на /index.php, а 303 - на другой код состояния.

ответил Robert Went 5 PMpTue, 05 Apr 2016 14:30:47 +030030Tuesday 2016, 14:30:47

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132