0 Пользователей и 1 Гость просматривают эту тему.
  • 17 Ответов
  • 478 Просмотров
*

astinasty

  • Захожу иногда
  • 67
  • 0 / 0
Сайт настроен на использование страницы с ошибкой 404 из материлов, т.к хотелось 404 в стиле сайта.При этом сервер выдает 301, вместо 404.Если использовать стандартный error.php, то ответ сервера получается правильным 404, но при этом не знаю как привести страницу 404 в вид шаблона.
Просьба помочь настроить ответ 404 или подскажите как изменить 404 из бесплатного шаблона "под себя" .
Сайт squidink.ru

<?php

/*--------------------------------------------------------------
# Copyright (C) joomla-monster.com
# License: http://www.gnu.org/licenses/gpl-2.0.html GNU/GPLv2 only
# Website: http://www.joomla-monster.com
# Support: info@joomla-monster.com
---------------------------------------------------------------*/

/**
 * @package     Joomla.Site
 * @subpackage  Template.system
 *
 * @copyright   Copyright (C) 2005 - 2012 Open Source Matters, Inc. All rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE.txt
 */

defined('_JEXEC') or die;
if (!isset($this->error)) {
   $this->error = JError::raiseWarning(404, JText::_('JERROR_ALERTNOAUTHOR'));
   $this->debug = false;
}

//get language and direction
$doc = JFactory::getDocument();
$this->language = $doc->language;
$this->direction = $doc->direction;

/////////////////////////////////////////////////////
// ARTICLE ID
$errorpage = 131;
/////////////////////////////////////////////////////

//get error code
$errorcode = $this->error->getCode();


if($errorcode=='404') {
 
  //get a db connection.
  $db = JFactory::getDbo();
   
  //create a new query object.
  $query = $db->getQuery(true);
   
  //select all records from the user profile table where key begins with "custom.".
  //order it by the ordering field.
  $query->select($db->quoteName(array('id')));
  $query->from($db->quoteName('#__content'));
  $query->where($db->quoteName('id'). ' = '. $db->quote($errorpage));
   
  //reset the query using our newly populated query object.
  $db->setQuery($query);
   
  //load the results
  $results = $db->loadResult();
 
  require_once(JPATH_BASE.'/components/com_content/helpers/route.php');
  if($results) {
    if ($errorcode == '404') {
      header('HTTP/1.1 301 Moved Permanently');
      header('Location: '.JRoute::_(ContentHelperRoute::getArticleRoute($errorpage), false));
      header('Connection: close');
      exit;
    }
 
  }
}

?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $this->language; ?>" lang="<?php echo $this->language; ?>" dir="<?php echo $this->direction; ?>">
<head>
   <title><?php echo $this->error->getCode(); ?> - <?php echo $this->title; ?></title>
   <link rel="stylesheet" href="<?php echo JURI::base(); ?>templates/<?php echo $this->template; ?>/css/error.css" type="text/css" />
</head>
<body>
   <div class="jm-error">
      <div class="jm-error-title">
         <div class="jm-error-code">
            <h1><?php echo $this->error->getCode(); ?></h1>
         </div>
         <div class="jm-error-message">
            <h2><?php echo $this->error->getMessage(); ?></h2>
         </div>
      </div>
      <div class="jm-error-desc">
         <?php echo JText::_('TPL_JMTEMPLATE_JERROR_PAGE_DOESNT_EXIST'); ?><br/>
         <?php echo JText::_('TPL_JMTEMPLATE_JERROR_GO_BACK_OR_HEAD_OVER'); ?><br />
         <div class="jm-error-buttons">
            <a class="jm-error-left" href="javascript:history.go(-1)"><?php echo JText::_('TPL_JMTEMPLATE_JERROR_BACK'); ?></a> <a class="jm-error-right" href="<?php echo JURI::base(); ?>" title="<?php echo JText::_('TPL_JMTEMPLATE_JERROR_HOME_PAGE'); ?>"><?php echo JText::_('TPL_JMTEMPLATE_JERROR_HOME_PAGE'); ?></a>
         </div>
      </div>
   </div>   
</body>
</html>
*

kern.USR

  • Давно я тут
  • 805
  • 61 / 1
Re: Сервер выдает 301, вместо 404
« Ответ #1 : 16.08.2018, 18:00:13 »
Вот всё что вы понаписали - бред сумасшедшего. Руки бы отбить тому, кто этот бред опубликовал первым, а все потом раскопировали! Даже, блин, на Joomla.org эта дибильная инструкция выложена  *ОХ-Х-Х*

В error.php вставте это
Код
<?php
// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );

if ($this->error->getCode() == '404') {
  echo file_get_contents(JURI::root().'/404');
}
?>
Свой материал для 404 опубликуйте в скрытом пункте меню, с алиасом 404 и будет вам счастье и красивая страница ошибки
*

astinasty

  • Захожу иногда
  • 67
  • 0 / 0
Re: Сервер выдает 301, вместо 404
« Ответ #2 : 16.08.2018, 18:45:40 »
вешает все мои домены как только обращаюсь к несуществующей странице
если вернуть старый error.php,то все ок
« Последнее редактирование: 16.08.2018, 18:51:08 от astinasty »
*

draff

  • Живу я здесь
  • 3472
  • 226 / 6
  • Ищу работу
Re: Сервер выдает 301, вместо 404
« Ответ #3 : 16.08.2018, 19:09:43 »
Пункт меню создан на материал 404 ?
Удалю вирус с сайта. Обновление Joomla!, JoomShopping, Virtuemart -> Коммерческий раздел     |    Отзывы
Создам плагин , модуль под заказ для VirtueMart , JoomShopping
*

Messir

  • Давно я тут
  • 529
  • 73 / 0
  • могу укусить:)
Re: Сервер выдает 301, вместо 404
« Ответ #4 : 16.08.2018, 19:34:59 »
Код
defined('_JEXEC') or die;

if (($this->error->getCode()) == '404') {
header("HTTP/1.0 404 Not Found");
echo file_get_contents(JURI::root().'404');
exit;
}
*

astinasty

  • Захожу иногда
  • 67
  • 0 / 0
Re: Сервер выдает 301, вместо 404
« Ответ #5 : 16.08.2018, 20:05:46 »
Пункт меню создан на материал 404 ?
да, скрытый пункт меню
*

astinasty

  • Захожу иногда
  • 67
  • 0 / 0
Re: Сервер выдает 301, вместо 404
« Ответ #6 : 16.08.2018, 20:06:18 »
Код
defined('_JEXEC') or die;

if (($this->error->getCode()) == '404') {
header("HTTP/1.0 404 Not Found");
echo file_get_contents(JURI::root().'404');
exit;
}

с вашим выдает : Error: syntax error, unexpected 'echo' (T_ECHO): Категория не найдена
*

ProtectYourSite

  • Завсегдатай
  • 1715
  • 97 / 4
  • Безопасность вебсайтов
Re: Сервер выдает 301, вместо 404
« Ответ #7 : 16.08.2018, 20:40:31 »
phpinfo allow_url_open какое значение?
*

astinasty

  • Захожу иногда
  • 67
  • 0 / 0
Re: Сервер выдает 301, вместо 404
« Ответ #8 : 16.08.2018, 21:12:01 »
Directive   Local Value   Master Value
allow_url_fopen   On   On
*

Messir

  • Давно я тут
  • 529
  • 73 / 0
  • могу укусить:)
Re: Сервер выдает 301, вместо 404
« Ответ #9 : 17.08.2018, 08:21:38 »
материал 404 просто открывать пробовали? Какой к нему путь в адресной строке? Страница должна открываться по адресу http://vash_sait/404, тогда все будет работать...
*

astinasty

  • Захожу иногда
  • 67
  • 0 / 0
Re: Сервер выдает 301, вместо 404
« Ответ #10 : 17.08.2018, 11:29:27 »
Во-первых, всем СПАСИБО!! :D :D :D :D
Вроде, заработало!Буду еще гонять.Причиной висяка была плагин JL No Doubles.Или буду думать как настроить или удалю и снова руками удалять дубли через robots.txt


*

astinasty

  • Захожу иногда
  • 67
  • 0 / 0
Re: Сервер выдает 301, вместо 404
« Ответ #11 : 17.08.2018, 11:34:53 »

В error.php вставте это
Код
<?php
// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );

if ($this->error->getCode() == '404') {
  echo file_get_contents(JURI::root().'/404');
}
?>
все заработало, причиной был плагин JL No Doubles и лишний "/" похоже
*

ProtectYourSite

  • Завсегдатай
  • 1715
  • 97 / 4
  • Безопасность вебсайтов
Re: Сервер выдает 301, вместо 404
« Ответ #12 : 17.08.2018, 12:24:35 »
МОжно попробовать, чтобы плагин работал использовать такой вариант:
Код
echo file_get_contents(JURI::root().'/index.php?option=com_content&view=article&id=12');
где вместо 12 подставить своё ид статьи.
*

astinasty

  • Захожу иногда
  • 67
  • 0 / 0
Re: Сервер выдает 301, вместо 404
« Ответ #13 : 17.08.2018, 14:03:34 »
Ни с того ни с сего перестало работать ! ! ! !
сервер отдает 404, но отражается страница вида �}:�<~1|P������i�x�p������������'V�3���� �~����/ ���_ď� }�>n���H�(6~1� *_ď|}��A���*��ǥ+�w�n�W��Z�)���ڶ{0����[^h�N�Y����ŏ@ЇP���1~��_���Qa�7h�8�ă}�1�7� z?~   H^���y���|����g�(�������ٸp;�>]?'��On]V���b;��ͺ,��m�Q� w\�2x2Jr(�=�o:|)����� �5�#gK�|G��SX��n/�&N   Ɓ0-^��P �F���m�>XYj6Z�h�|e}mi�����͕u�%���kk   �-��aB��+`(!gp�/���#�=+̞j+ƚ��+kH�U0���C�w�@��(xF��.�r�sOo_<��M�6� t��W�[�5�w\w�ܳ�p��?��em���4�e�� �mՕ�i��ӷ6����W�j����@8�+J�������$R��X��X�+cv����}�c�0� �W��F��_5�Vm��=7���@�FȎM+�G�Fl ��c9�f�;��   �i�� �h=���Lt����a �l��W�b�/��~��Q�n� �_R/�Jƚ� ]d���3677�.�0���n�'���L��Y�v2��AZhQԺ�k�Q��9��I� ���6���Rg�w��l��-m�u6�I��KsX�q�mkF���������K�h�ͮ�j se����l��5�gtE���U5�Ju���@��L��j0B§���h�X |c��͹���A �-}w����]��%zm{f�o�R*��-���� �ڍ,���i$�#�:o�X�qa��o���������ꑥ���m�DZ�k�Až�R��|?aE�W�Î �N�d�@����Law��1;dׯ����2ٳ���j\u�{#�楻�1��=X8�j`����_ �rb���(�u�����Fw�5kЖ �� ^   ��'殜��  _��y�v��Vz�c�UUރ���n9���c���������H-ph�@���i.YXԡ +�U�h���D�-@���~ïXB���Mly�v��X� ��3c LE��/�W��M��t>g�#���*�g��ݼr��q�0-X���t���� n�X�1���)�|E%mB nc���,X ����{�}ҽ�K(�K9��A�fJY������j6����{?A��3l�b�u2W��BS�X%W�H$�.0�c��a����l�t�s�N�3
*

ProtectYourSite

  • Завсегдатай
  • 1715
  • 97 / 4
  • Безопасность вебсайтов
Re: Сервер выдает 301, вместо 404
« Ответ #14 : 17.08.2018, 14:19:55 »
Кодировка или сжатие нарушено
*

astinasty

  • Захожу иногда
  • 67
  • 0 / 0
Re: Сервер выдает 301, вместо 404
« Ответ #15 : 17.08.2018, 14:33:08 »
захожу с нового компа - каракули, проходит время - норм
я в замешательстве
у вас как открывается, скажем http://www.squidink.ru/affsaggd ?
*

astinasty

  • Захожу иногда
  • 67
  • 0 / 0
Re: Сервер выдает 301, вместо 404
« Ответ #16 : 18.08.2018, 20:49:38 »
есть подозрение, что это была проблема хостинга
*

dmitry_stas

  • Легенда
  • 12182
  • 1157 / 7
Re: Сервер выдает 301, вместо 404
« Ответ #17 : 18.08.2018, 20:54:00 »
у вас как открывается, скажем http://www.squidink.ru/affsaggd ?
у меня вот так http://prntscr.com/kk6wsq
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Белый экран вместо сайта

Автор sibdes

Ответов: 26
Просмотров: 581
Последний ответ 03.08.2018, 08:37:31
от sibdes
Альтернативный неофициальный сервер обновления Joomla

Автор AlekVolsk

Ответов: 56
Просмотров: 11104
Последний ответ 23.06.2018, 21:55:35
от AlekVolsk
Вместо "Мой аккаунт" - 404

Автор Kovbasa82

Ответов: 1
Просмотров: 204
Последний ответ 12.04.2018, 06:28:46
от Kovbasa82
Пустая страница вместо админки после обновления РНР

Автор Wadym

Ответов: 7
Просмотров: 563
Последний ответ 05.04.2018, 14:54:59
от dmitry_stas
Белый экран вместо главной страницы Joomla 3.7.5

Автор mrmagic

Ответов: 5
Просмотров: 551
Последний ответ 13.03.2018, 11:42:47
от mrmagic