Ошибка 404 мой профиль dle

Огромная благодарность, celsoft. В нужную сторону намекнул :) Только лег спать после перепроверки что работает не так, как пришло решение. :) Проблема решена!

Для тех кто не понял в чем суть проблемы у Вас, рассказываю.

У меня в main.tpl категории выводятся в тегах:

{*<!-- Вывод основных категорий -->*}
    [category=1,3,4]
       {info}
       {content}
       {navigation}
    [/category]
{*<!-- /Вывод основных категорий -->*}

Соответственно если набрать в строке адреса несуществующую категорию, то ошибка выдаваться не будет, так как данным кодом ошибка пропивязана строго только к этим категориям, а нам надо ко всем, даже к несуществующим. Поэтому, помимо кода вверху, ниже добавляем в main.tpl

{*<!--Прочие категории-->*}
    [not-available=main]
        [not-category=1,3,4]   
		     {info}
		     {content}   
        [/not-category]  
    [/not-available]
{*<!--/Прочие категории-->*} 

[not-available=main] необходимо чтобы не показывалось на главной. теперь 404 страница правильно выдает.


Изменено 4 декабря 2021 пользователем Dnny

Для начала давайте узнаем. Что такое страница 404?
Ошибка 404 или Not Found («не найдено» ) стандартный код ответа HTTP о том, что клиент был в состоянии общаться с сервером, но сервер не может найти данные согласно запросу.
Ошибку 404 не следует путать с ошибкой «Сервер не найден» или иными ошибками, указывающими на ограничение доступа к серверу.
Ошибка 404 означает, что запрашиваемый ресурс может быть доступен в будущем, что однако не гарантирует наличие прежнего содержания.
Пользователи наиболее часто сталкиваются с ошибкой 404 при посещении т. н. битых или мёртвых ссылок. Т. о. делая ошибку 404 одной из наиболее узнаваемых ошибок в сети Интернет.

На сколько я знаю в DLE такое страницы нет, и когда пользователь переходит по битой ссылке, его перенаправляет на ‘дефолтную’ страницу 404 хостинг провайдера на котором установлен сайт. Это не очень красиво. Будем решать эту проблему(в DLE).

Установка
Открываем файл .htaccess в корне сайта и ищем в нем:

RewriteEngine On

Под этой строкой вставляем:

ErrorDocument 404 /404.html

Можно просто создать статистическую страницу с названием «404» Либо отдельно создать в корне сайта «404.html» и оформить его!

Вот и всё! теперь при переходе по битым ссылкам пользователя будет перекидывать на вашу страницу 404, а не на страницу хост провайдера.
Теперь давайте применим эту страницу для несуществующих или удаленных новостей на сайте.

Открываем файл /engine/modules/show.full.php и ищем:

elseif( !$news_found ) {         @header( "HTTP/1.0 404 Not Found" );         msgbox( $lang['all_err_1'], $lang['news_err_12'] ); }

Заменяем эти строки на:

elseif( ! $news_found ) {         @header("HTTP/1.0 404 Not Found");         @header("Status: 404 Not Found");         @require_once($_SERVER['DOCUMENT_ROOT'].'/404.html');         exit(); }

Столкнулся с такой проблемой. На одном из моих сайтов в Вебмастере Яндекса рядом названием появился красный треугольник с восклицательным знаком, предупреждающий о так называемой фатальной ошибке. По определению Яндекса, Главная страница сайта недоступна для его поискового робота. Далее следует следующее сообщение:

При обращении к главной странице сайта не удалось получить документ: «404Not Found». Поскольку страница недоступна для робота, она может быть исключена из результатов поиска.

Проверьте ответ сервера и при необходимости обратитесь к хостинг-провайдеру.

Но при этом, все страницы сайта (в том числе и главная) открываются нормально и визуально к ним нет никаких претензий.

DLE - Ошибка «404Not Found»

Перейдя по ссылке на слове «Проверьте» можно вручную проверить какой ответ передает любая страница сайта. Так вот, с главной действительно передавался ответ «404 Not Found», а с остальных «200 ОК».

Сразу скажу, что сайт собран на движке DLE версия 13, но думаю, что такое может случиться и на других версиях.

DLE - Ошибка «404Not Found»

«Погуглив» особо ничего ценного не нашел, разве что перечень файлов движка DLE, которые потенциально могут отдавать ошибку «404Not Found». Привожу этот список, может кому-то будет полезно:

  • ./engine/modules/main.php
  • ./engine/modules/feedback.php
  • ./engine/modules/static.php
  • ./engine/modules/lastcomments.php
  • ./engine/modules/profile.php
  • ./engine/modules/show.full.php
  • ./engine/modules/social.php
  • ./engine/classes/min/lib/Minify/Controller/Version1.php

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

Следует отметить, что специалисты моего хостингера очень с пониманием отнеслись к моей проблеме. Они определили какой именно файл дает ошибку «404Not Found» на главную страницу сайта. Проблема была в файле ./engine/modules/static.php.

Ребята предложили заменить строку @header( «HTTP/1.0 404 Not Found» ); на @header( «HTTP/1.0 200 OK» ); Но предупредили, что это прямое вмешательство в код движка, и посоветовали обратится к разработчикам DLE для прояснения ситуации.

После этой замены главная страница уже не отдает «404 ошибку», но я понимал, что это «косметическое» решение проблемы.

Я решил подойти к этой проблеме логически. Если речь идет только о главной, и при этом упоминаются только статические страницы, то я решил проверить в Админке DLE настройки. В разделе «Основные настройки» есть пункт «Информация выводимая по умолчанию на главной странице» и предлагается выбрать один из трех вариантов:

  • Новости выводимые в шаблоне при помощи тега {content}
  • Новости выводимые в шаблоне при помощи тега {custom}
  • Статическую страницу с именем main

В моем первоначальном варианте был выбран третий вариант. В заблуждение меня ввело имя main, так как в любом шаблоне ДЛЕ есть блок main.tpl, отвечающий за отображение страниц сайта, в том числе и главной.

DLE - Ошибка «404Not Found»

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

Я понял, что в моем случае нужно выбирать вариант Новости выводимые в шаблоне при помощи тега {custom}. После того как я исправил, при проверке в Вэбмастере Яндекса, с главной уже ответ был «200 OK». В принципе проблема решена. Теперь нужно подождать несколько дней, пока поисковый робот Яндекса проверит главную страницу моего сайта и уберет предупреждение о фатальной ошибке.

Надеюсь кому-то будет полезен мой опыт устранения ошибки «404Not Found» на сайте с ДЛЕ.

Добавлено новостей: 211

Об авторе: Основные направления деятельности: графика, дизайн; проектирование, конструирование, 3d моделирование; создание и продвижение сайтов, контент и ссылки. Имею солидный опыт и буду рад любому сотрудничеству.

Для начала давайте узнаем. Что такое страница 404?
Ошибка 404 или Not Found («не найдено» ) стандартный код ответа HTTP о том, что клиент был в состоянии общаться с сервером, но сервер не может найти данные согласно запросу.
Ошибку 404 не следует путать с ошибкой «Сервер не найден» или иными ошибками, указывающими на ограничение доступа к серверу.
Ошибка 404 означает, что запрашиваемый ресурс может быть доступен в будущем, что однако не гарантирует наличие прежнего содержания.
Пользователи наиболее часто сталкиваются с ошибкой 404 при посещении т. н. битых или мёртвых ссылок. Т. о. делая ошибку 404 одной из наиболее узнаваемых ошибок в сети Интернет.

На сколько я знаю в DLE такое страницы нет, и когда пользователь переходит по битой ссылке, его перенаправляет на ‘дефолтную’ страницу 404 хостинг провайдера на котором установлен сайт. Это не очень красиво. Будем решать эту проблему(в DLE).

Установка
Открываем файл .htaccess в корне сайта и ищем в нем:

RewriteEngine On

Под этой строкой вставляем:

ErrorDocument 404 /404.html

Можно просто создать статистическую страницу с названием «404» Либо отдельно создать в корне сайта «404.html» и оформить его!

Вот и всё! теперь при переходе по битым ссылкам пользователя будет перекидывать на вашу страницу 404, а не на страницу хост провайдера.
Теперь давайте применим эту страницу для несуществующих или удаленных новостей на сайте.

Открываем файл /engine/modules/show.full.php и ищем:

elseif( !$news_found ) {         @header( "HTTP/1.0 404 Not Found" );         msgbox( $lang['all_err_1'], $lang['news_err_12'] ); }

Заменяем эти строки на:

elseif( ! $news_found ) {         @header("HTTP/1.0 404 Not Found");         @header("Status: 404 Not Found");         @require_once($_SERVER['DOCUMENT_ROOT'].'/404.html');         exit(); }

У меня на движке 11.3 не совсем захотело работать решение в ответеь.
А все дело в том, что страница 404.html была создана через форму статических страниц. Пришлось вытянуть весь код этой страницы и создать новую 404.html, и залить в корень сайта.

А если пошагово, то:
1. Создал 404 страницу через статические страницы в админке сайта.
2. Открыл созданную страницу, скопировал ее исходный код и вставил в новый файл под названием 404.html.
3. Залил файл 404.html в корень сайта.
4. Удалил страницу которую создал в первом пункте, она уже нам не нужна.
5. Сделал правки в .htaccess после

RewriteEngine On

вставил

ErrorDocument 404 /404.html 

И без этой правки все нормально работает но на всякий случай пускай…

6. Сделал правку от PUNPUN
Открываем /engine/egine.php находим :

if (!$category_id) $category_id = 'not detected';

Меняем на :

if (!$category_id AND $view_template != "rss") {
    header("HTTP/1.0 404 Not Found");
    header("Status: 404 Not Found");
    @require_once($_SERVER['DOCUMENT_ROOT'].'/404.html');
    exit();
}

Работает.

Не ссы! Входи или зарегистрируйся!

Активные темы Темы без ответов

Стр.: 1

Надо войти или зарегиться

1 28.08.2012 10:44

  • admin
  • АлаичЪ
  • Карма: 143 / 2

Тема: Правильная 404 страница-ошибка для DLE

Тут мне задали вопрос-просьбу:

krock пишет:

хотелось бы от тебя увидеть пост о правильной настройки 404 страницы. В инете есть инфа, но не понятно какой лучше довериться.

Честно говоря, я не совсем понимаю о чем речь. Что подразумевается под «правильной» странице об ошибке 404? Что не устраивает в стандартной  странице?

Ответьте, пожалуйста, на эти вопросы, тогда, возможно, я смогу помочь.

2 krock 28.08.2012 11:13

  • Карма: 1 / 0

Re: Правильная 404 страница-ошибка для DLE

Тут https://prowebber.ru/dle/hacks/12645-hak-stranica-oshibki-404-na-dle.html
И тут https://admin-club.ru/faq/dlefaq/597-tpl-404.html

Просто в DLE есть страница ошибки перехода, но по мне так лучше вместо нее сделать 404. Чтобы пользователь, в случае возникновения ее, мог увидеть не просто текст на сайте типо: извините данная страница не найдена. А смог на этой же странице осуществить поиск, выбрать нужный раздел сайта. Т.е. сделать из нее информационную страницу.

3 ПафНутиЙ 28.08.2012 13:46

  • ПафНутиЙ
  • Делаю всякие полезности для DLE и не только
  • Карма: 51 / 1

Re: Правильная 404 страница-ошибка для DLE

а не проще ли на хостинге настроить нормально страницы ошибок? вот так например
или я чегото не допонял?

4 krock 28.08.2012 14:18

  • Карма: 1 / 0

Re: Правильная 404 страница-ошибка для DLE

Хотелось бы чтобы дизайн этой страницы вписывался в сам сайт. Как это на wordpress реализовано.

5 ПафНутиЙ 28.08.2012 17:42

  • ПафНутиЙ
  • Делаю всякие полезности для DLE и не только
  • Карма: 51 / 1

Re: Правильная 404 страница-ошибка для DLE

ну так я вам показал ссылку. на хостинге лежит файл с вёрсткой, взятой со страницы сайта.

6 krock 28.08.2012 20:17

  • Карма: 1 / 0

Re: Правильная 404 страница-ошибка для DLE

А реализация?

7 ПафНутиЙ 28.08.2012 22:11

  • ПафНутиЙ
  • Делаю всякие полезности для DLE и не только
  • Карма: 51 / 1

Re: Правильная 404 страница-ошибка для DLE

krock пишет:

А реализация?

на каждом хостинге есть страницы обработки ошибок — кладёте туда нужную вёрстку и всё.

8 krock 28.08.2012 22:14

  • Карма: 1 / 0

Re: Правильная 404 страница-ошибка для DLE

Как заменить страницу ошибки на 404?

9 admin 29.08.2012 07:53

  • admin
  • АлаичЪ
  • Карма: 143 / 2

Re: Правильная 404 страница-ошибка для DLE

Реализация метода описанного ПафНутиЙ проста до безобразия:
Открываем файл .htaccess и добавляем туда строчку

ErrorDocument 404 http://site.ru/404.html

где 404.html это заранее созданная страница, которая лежит в корне сайта, т.е. там же, где и сам файл .htaccess

10 belyev70 06.10.2012 17:14

  • belyev70
  • Я тут новенький
  • Карма: 0 / 0

Re: Правильная 404 страница-ошибка для DLE

Здравствуйте у меня возник вопрос про ошибку 404 мне на сайте нужно удалить категории вот такого типа http://сайт/категория/,http://сайт/категория/page/2/,http://сайт/категория/page/3/ как для таких страниц сделать ошибку 404 в dle

11 admin 08.10.2012 07:23

  • admin
  • АлаичЪ
  • Карма: 143 / 2

Re: Правильная 404 страница-ошибка для DLE

belyev70 пишет:

как для таких страниц сделать ошибку 404 в dle

Возьми да удали категорию в админке, будет выдаваться 404 страница.

12 DzSoft 05.08.2014 18:29

  • DzSoft
  • Я тут новенький
  • Карма: 0 / 0

Re: Правильная 404 страница-ошибка для DLE

Только все варианты не распростроняются почему-то на статические страницы)

Внимание, обнаружена ошибка
К сожалению, страница *.html для Вас не доступна: возможно, был изменен ее адрес или она была удалена. Пожалуйста, воспользуйтесь поиском.

13 svetlana 05.08.2014 18:43

  • svetlana
  • Чув-а-а-а-к!!!
  • Карма: 47 / 0

Re: Правильная 404 страница-ошибка для DLE

DzSoft, в static.php, в самом конце, можно поправить вывод 404 ошибки и поставить там вывод любой нужной страницы.

14 DzSoft 05.08.2014 21:42

  • DzSoft
  • Я тут новенький
  • Карма: 0 / 0

Re: Правильная 404 страница-ошибка для DLE

svetlana, подправляю, но видать я криворукий.

Сообщений 14

Стр.: 1

Надо войти или зарегиться

Ошибка 404 на DLE. Настройка

От автора: приветствую вас, друзья. Данная статья будет довольно небольшой и посвящена она настройке страницы 404, то есть страницы, которая показывается, когда происходит ошибка 404 на DLE. Приступим?

Давайте начнем с того, что же такое ошибка 404. Ошибка 404 или более понятное Not Found (не найдено) — это ни что иное, как код ответа сервера на запрос клиента. Код этот означает, что запрос клиента был получен сервером, обработан, но желаемого документа (текстового файла, картинки и т.п.) на сервере не оказалось. Именно поэтому сервер и сообщает, что ничего по запрошенному адресу не найдено.

Стандартная страница сервера с ответом пользователю выглядит примерно так:

Чистая белая страница, с сообщением на английском: Not Found. Ни ссылки на главную страницу сайта, ни каких-либо других ссылок — нет. К тому же, страница оформлена не в стиле вашего сайта, и если пользователь случайно забредет на ваш сайт по устаревшей ссылке, то увидев такую плачевную картину, он, скорее всего, покинет ваш сайт.

Профессия PHP-разработчик с нуля до PRO

Готовим PHP-разработчиков с нуля

Вы с нуля научитесь программировать сайты и веб-приложения на PHP, освоите фреймворк
Laravel
, напишете облачное хранилище и поработаете над интернет-магазином в команде.
Сможете устроиться на позицию Junior-разработчика.

Узнать подробнее

Командная стажировка под руководством тимлида

90 000 рублей средняя зарплата PHP-разработчика

3 проекта в портфолио для старта карьеры

Именно поэтому многие сайты возвели создание страницы 404 практически в искусство и стараются привлечь и заинтересовать посетителя, случайно попавшего на несуществующий адрес. Посетите Google Картинки и посмотрите картинки по запросу 404. Вы увидите целую коллекцию веселых и интересных картинок, которые используются на реальных сайтах для страницы 404.

Во многих CMS страница 404 есть и проблема, описанная выше уже решена. CMS DLE здесь не исключение. Однако здесь не все так однозначно. В DLE при наборе неверного адреса вы, конечно же, не увидите белую страницу. Нет, вы увидите ваш сайт, с вашим дизайном. Просто вместо контента страницы или новости будет выводиться соответствующий текст ошибки.

Собственно, мы можем управлять лишь оформлением данного текста, задавая нужный нам цвет или фон. Сделать это можно в шаблоне info.tpl:

Здесь мы можем, к примеру, задать для блока нужный класс или разметку. Соответственно, если вы создаете собственную тему для DLE, тогда шаблон info.tpl вам потребуется для вывода различных ошибок. В противном случае, когда возникнет та или иная ошибка, тогда вместо внятного сообщения вы увидите сообщение о том, что нет нужного шаблона.

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

На этом текущую статью мы будем завершать. Удачи!

Столкнулся с такой проблемой. На одном из моих сайтов в Вебмастере Яндекса рядом названием появился красный треугольник с восклицательным знаком, предупреждающий о так называемой фатальной ошибке. По определению Яндекса, Главная страница сайта недоступна для его поискового робота. Далее следует следующее сообщение:

При обращении к главной странице сайта не удалось получить документ: «404Not Found». Поскольку страница недоступна для робота, она может быть исключена из результатов поиска.

Проверьте ответ сервера и при необходимости обратитесь к хостинг-провайдеру.

Но при этом, все страницы сайта (в том числе и главная) открываются нормально и визуально к ним нет никаких претензий.

DLE - Ошибка «404Not Found»

Перейдя по ссылке на слове «Проверьте» можно вручную проверить какой ответ передает любая страница сайта. Так вот, с главной действительно передавался ответ «404 Not Found», а с остальных «200 ОК».

Сразу скажу, что сайт собран на движке DLE версия 13, но думаю, что такое может случиться и на других версиях.

DLE - Ошибка «404Not Found»

«Погуглив» особо ничего ценного не нашел, разве что перечень файлов движка DLE, которые потенциально могут отдавать ошибку «404Not Found». Привожу этот список, может кому-то будет полезно:

  • ./engine/modules/main.php
  • ./engine/modules/feedback.php
  • ./engine/modules/static.php
  • ./engine/modules/lastcomments.php
  • ./engine/modules/profile.php
  • ./engine/modules/show.full.php
  • ./engine/modules/social.php
  • ./engine/classes/min/lib/Minify/Controller/Version1.php

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

Следует отметить, что специалисты моего хостингера очень с пониманием отнеслись к моей проблеме. Они определили какой именно файл дает ошибку «404Not Found» на главную страницу сайта. Проблема была в файле ./engine/modules/static.php.

Ребята предложили заменить строку @header( «HTTP/1.0 404 Not Found» ); на @header( «HTTP/1.0 200 OK» ); Но предупредили, что это прямое вмешательство в код движка, и посоветовали обратится к разработчикам DLE для прояснения ситуации.

После этой замены главная страница уже не отдает «404 ошибку», но я понимал, что это «косметическое» решение проблемы.

Я решил подойти к этой проблеме логически. Если речь идет только о главной, и при этом упоминаются только статические страницы, то я решил проверить в Админке DLE настройки. В разделе «Основные настройки» есть пункт «Информация выводимая по умолчанию на главной странице» и предлагается выбрать один из трех вариантов:

  • Новости выводимые в шаблоне при помощи тега {content}
  • Новости выводимые в шаблоне при помощи тега {custom}
  • Статическую страницу с именем main

В моем первоначальном варианте был выбран третий вариант. В заблуждение меня ввело имя main, так как в любом шаблоне ДЛЕ есть блок main.tpl, отвечающий за отображение страниц сайта, в том числе и главной.

DLE - Ошибка «404Not Found»

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

Я понял, что в моем случае нужно выбирать вариант Новости выводимые в шаблоне при помощи тега {custom}. После того как я исправил, при проверке в Вэбмастере Яндекса, с главной уже ответ был «200 OK». В принципе проблема решена. Теперь нужно подождать несколько дней, пока поисковый робот Яндекса проверит главную страницу моего сайта и уберет предупреждение о фатальной ошибке.

Надеюсь кому-то будет полезен мой опыт устранения ошибки «404Not Found» на сайте с ДЛЕ.

Добавлено новостей: 211

Об авторе: Основные направления деятельности: графика, дизайн; проектирование, конструирование, 3d моделирование; создание и продвижение сайтов, контент и ссылки. Имею солидный опыт и буду рад любому сотрудничеству.

Возможно, вам также будет интересно:

  • Ошибка 404 модуль сарказма не найден
  • Ошибка 404 код html
  • Ошибка 404 когда появилась
  • Ошибка 404 клапан рециркуляции лачетти
  • Ошибка 404 картинка на весь экран

  • Понравилась статья? Поделить с друзьями:
    0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии