Jump to content
IPS Invision Community
Sign in to follow this  
DrTauren

Страница ошибки на сайте

Recommended Posts

DrTauren

Добрый вечер всем.
Столкнулся с очередной проблемой. Помню, раньше при попытке зайти в категорию, на просмотр которой у тебя не было доступа, вылезала обычная страница сайта с кодом ошибки и надписью (которую можно установить самому при настройке категории). Сейчас у меня этого нет, а хотелось бы вернуть. Подозревал что дело в файле .htaccess - указание там страницы 404 и т.д., но содержание файла 404 по указанному пути тоже отличается от того, что есть на экране (скрин ниже). 
В общем, хотелось бы вернуть нормальные сообщения форума об отсутствии прав просмотра и т.д.

Скрытый текст

image.png.ae632de538c73c64838db12480a01cf5.png


 

Share this post


Link to post
Share on other sites
Sipsb
7 часов назад, DrTauren сказал:

в файле .htaccess - указание там страницы 404 и т.д.

Собственная страница прописывается в constants.php. Для того чтобы создать собственную страницу следуйте инструкции ниже.

Вы можете создать различные HTML страницы, которые будут использованы в перечисленных случаях, и указать Invision Community использовать ваши файлы вместо стандартных. Это гарантирует, что, если стандартные страницы могут быть заменены при обновлении, ваши страницы в любых случаях сохранятся.

  1. Создайте собственную HTML страницу и загрузите её в корневую директорию вашего сообщества.
  2. Если у вас ещё нет файла constants.php в корневой директории вашего сообщества, создайте его со следующим содержимым:
define( 'ERROR_PAGE', 'страница_ошибки.html' );

верните стандартное содержимое файла .htaccess

<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule \.(js|css|jpeg|jpg|gif|png|ico|map)(\?|$) /404error.php [L,NC]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

 

  • Поддержать 1

Share this post


Link to post
Share on other sites
DrTauren

@Sipsb спасибо. А можно ли страницу с 404 ошибкой выдавать везде, кроме страницы с сообщением об отсутствии доступа к категории\теме? На сколько я знаю, при указанной вами установке, новая 404 страница будет появляться при любой ошибки. Будь то реальная 404 или отсутствие доступа

Share this post


Link to post
Share on other sites
Sipsb
15 минут назад, DrTauren сказал:

А можно ли страницу с 404 ошибкой выдавать везде, кроме страницы с сообщением об отсутствии доступа к категории\теме?

Если потребуется, то Вы можете настроить для каждого форума своё отображение ошибки.

Скрытый текст

2020-05-21_11-51-19.png

 

15 минут назад, DrTauren сказал:

новая 404 страница будет появляться при любой ошибки.

Нет, она будет появляться вместо штатной error.php.

Share this post


Link to post
Share on other sites
DrTauren

@Sipsb Сделал как вы подсказали, текст ошибки в настройках форума тоже указал. .htaccess и constants.php по вашему примеру, но ничего не изменилось.
Плюс, до сих пор непонятно как сделать определённую страницу ошибки для отдельных страниц форума.

Share this post


Link to post
Share on other sites
ZizionarD
Posted (edited)

@DrTauren Саня, как я помню (могу ошибаться) после изменений нужно обновить кэш, делается это в админ панели:

Скрытый текст

Перейти в Тех. поддержку

image.png.3eabcb7561dbf758edc03a3dea5b8cd5.png

Установить горошек на "Что-то работает неправильно" и нажать "Продолжить"

image.png.bb0f8b8e95916f67bfe2256294ba966c.png 

 

Edited by ZizionarD

Share this post


Link to post
Share on other sites
DrTauren

@ZizionarD да пробовал, само-собой. Ноль эффекта

Share this post


Link to post
Share on other sites
agamer

У меня есть подозрение, что 404 страницу без плагина не сделать

Например если набрать адрес https://ipsinfo.ru/404 в этом случае ядро движка  выдаст стандартную форумную страницу с текстом "Запрашиваемая страница не существует". Причем код ответа у нее будет 404.

На error.php перекидывает если не смогло загрузиться ядро движка. Например если база данных недоступна или какой-то плагин имеет синтаксическую ошибку в коде.

Ну а если у вас отвалился php модуль, то страницу ошибки генерирует уже вебсервер, там даже до загрузки ядра движка дело не доходит. На этот случай надо и в .htaccess прописать статичную страницу.

А вот это

Скрытый текст

1507216881_Screenshot_2020-05-22.png.845391644a0c8f39485074513fe01d71.png

можно изменить только с помощью плагина.

Возможно есть документированные возможности, но я них нигде не нашел.

 

  • Нравится 1

Share this post


Link to post
Share on other sites
DrTauren
11 минут назад, agamer сказал:

А вот это

Так вот мне и надо, чтобы именно это выходило. А его нет, чисто то что скидывал в начале топика. Как вернуть такие стандартные страницы-то?

Share this post


Link to post
Share on other sites
agamer

@DrTauren 

эту страницу генерирует сам движок. А то что у тебя на скрине похоже на ошибки работы самого движка или плагинов. Апач вряд ли выдаст 404 станицу со ссылкой на форум. Да и не выдаст апач свою 404 если index.php отработал без 50х ошибок.

Я даже не знаю как сымитировать подобное.

Share this post


Link to post
Share on other sites
agamer
Posted (edited)

Как вариант

В самом начале файлов вставить такой код:

index.php

<?php file_put_contents ( 'test.txt' , 'index.php'); ?>

error.php

<?php file_put_contents ( 'test.txt' , 'error.php'); ?>

404error.php

<?php file_put_contents ( 'test.txt' , '404error.php'); ?>

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

Echo не рекомендую, скорее всего ни в одном файле не сработает.

Что это даст?

Если отработает index.php значит ошибка в шаблоне сайта.

Если остальные, то в ядре движка что-то сломалось.

Если test.txt не появится, значит index.php вообще не запускается, а вебсервер сразу кидает на свою страницу.

 

Edited by agamer
  • Нравится 2

Share this post


Link to post
Share on other sites
DrTauren

@agamer Что интересно, если ввести несуществующий  адрес типа ...ru/несущСтраница, то вылезает нормальная оформленная 404 страница. Но если перейти в раздел, к которому у тебя нет доступа - то вылезает то что в первом сообщении... Хотелось бы просто вывести норм страницу об отсутствии доступа и всё.

По поводу вашего метода - сработало, выдало index.php, то есть ошибка в шаблоне. Где искать не подскажете?

Share this post


Link to post
Share on other sites
DrTauren

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

Share this post


Link to post
Share on other sites
agamer

@DrTauren Ваш скрин из первого поста говорит о том, что не загружаются CSS и картинки

Причин может быть 100500.

Самые распространенные это

  • у вас есть плагин меняющий страницы ошибок и он работает не правильно
  • в самом шаблоне что-то сделано неправильно.

Какого либо универсального решения проблемы не существует. Надо ковырять код.

Чтобы исключить шаблон, надо посмотреть как эта страница выглядит на других стилях. И на дефолтном, если вы его не ковыряли.

  • Нравится 1

Share this post


Link to post
Share on other sites
DrTauren
Posted (edited)

@agamer стандартный шаблон не менял, попробовал. Так же вылезает страница ошибки, но без CSS оформления (так же как и на основном шаблоне). Сам код страницы обращается везде по верным адресам. Например картинка не отображается, но если ввести адрес напрямую в строке браузера, то всё загружается. Вообще дичь какая-то

Edited by DrTauren

Share this post


Link to post
Share on other sites
agamer

@DrTauren

Вряд ли кто-то сможет помочь. Надо исследовать код, включать ошибки php уровня notice и выше. Вобщем там все очень сложно.

  • Нравится 1
  • Поддержать 1

Share this post


Link to post
Share on other sites
DrTauren

@agamer @ZizionarD @Sipsb Всем большое спасибо, проблему нашёл. Создал давным давно в приложении Pages страницу ошибки и выводил, соответственно, её при ошибках. Прикол в том, что путь до css и всего прочего был не полный а по типу "/404/index.php", плюс там где он был полный, было http. Видать после перехода на https всё пошло по одному месту. Сейчас всё исправил, но заметил другой странный косяк с приложением страниц, но о нём в другой теме... :dontknow:

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...
Вверх