DNN вернуть родительскую страницу вместо 404 страницы, как вернуть 404? - PullRequest
0 голосов
/ 25 октября 2018

У нас есть нормальная установка DNN (v09.00.02 366), и мы устанавливаем страницу 404, используя «Страницы по умолчанию» в настройках сайта.

Это странное поведение, когда DNN возвращает содержимое родительского элемента.страница вместо возврата страницы 404, когда вы переходите на несуществующую страницу.

/ parent / child => возвращает содержимое / parent

Дочерняя страница не существует, поэтому она должна вернуть страницу 404 с кодом состояния HTTP 404.
Как мы можем изменить поведение, чтобы следовать желаемому поведению?

1 Ответ

0 голосов
/ 26 октября 2018

Наиболее распространенные случаи, когда не найденная страница правильно возвращает ошибку 404 в DNN, перечислены ниже:

  • Это страница корневого уровня, которая не существует https://example.com/not-found
  • Страница существует, но в настоящее время она удалена, отключена или защищена разрешениями (и / или у вас нет соответствующих разрешений)

Существуют и другие выбранные экземпляры, ноэто суть этого.Это из-за динамической природы DNN.Когда модуль добавляется на страницу, DNN не знает, создает ли этот модуль свои собственные URL-адреса динамически или нет.

Примеры этого включают модули блога и новостей.Нетехнический редактор контента должен иметь возможность создавать новое сообщение в блоге или новость и иметь собственный уникальный URL-адрес.

Примеры:

Глядя наВ приведенных выше примерах DNN не может безопасно перенаправлять как ошибку HTTP 404, поскольку страницы действительно существуют, но только как URL-адреса, которые затем динамически используются для загрузки пользовательских данных из модуля на странице.

Решениедля этого можно было бы создать своего собственного провайдера URL-адресов, который можно было бы основать на том, который находится в ядре DNN.

Другим решением будет обеспечение установки автономных страниц (без динамических модулей).чтобы указать канонический URL.Вы можете сделать это в соответствующих настройках страницы.

Более подробную информацию о поставщике URL на момент выпуска можно найти в сообщении блога ниже.

https://www.dnnsoftware.com/community-blog/cid/154518/page-not-found-404-error-handling-in-dnn

Вкл.примечание: многие функции провайдера URL не имеют пользовательского интерфейса для управления ими.Вы можете увидеть настройки провайдера URL, выполнив следующие запросы, чтобы увидеть, что это за настройки.

-- the highest-level settings
SELECT * FROM [dbo].[HostSettings] WHERE [SettingName] LIKE '%aum_%' ORDER BY [SettingName];
-- setttings for each website, overriding the host-level settings
SELECT * FROM [dbo].[PortalSettings] WHERE [SettingName] LIKE '%aum_%' ORDER BY [PortalId], [SettingName];
...