LiveInternetMail.ru
Форум русской поддержки Joomla!® CMS
27.11.2014, 22:02:49 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Войти Регистрация Помощь  
Страниц: [1] 2  Все   Вниз
  Добавить закладку  |  Печать  
Автор Тема: Своя страница 404  (Прочитано 4258 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Larisa
Давно я тут
****

Репутация: +40/-26
Offline Offline

Пол: Женский
Сообщений: 258


je te promets...


« : 11.07.2012, 16:55:50 »

Уже сколько решений не перепробовала - ничего не получается...
Что делала - по порядку:
1. В менеджере материалов создала страницу с алиасом 404 с названием "Страница не найдена"
2. Создала отдельное меню Error-menu с пунктом типа "Материал" с алиасом "error" (все без кавычек), где выбрала нужный материал
3. Скопировала файл error.php из папки templates/system в папку templates/шаблон
Вот код файла:
Показать текстовый блок
4. Создала неопубликованный модуль этого меню
5. В файле templates/шаблон/templateDetails.xml вписала перечисление файла error.php. в разделе <files><filename>error.php</filename></files>
6. В содержимом файла error.php между тегами <body></body> прописала:
Показать текстовый блок
То есть сделала все, как написано здесь http://joomlaforum.ru/index.php/topic,178280.0.html
7. Результат смотрю по странице /o-kompanii/ Набираю несуществующие url-ы:
/o-ko123mpanii/
Код:
Notice: Undefined index: id in .../components/com_content/router.php on line 278

Warning: Cannot modify header information - headers already sent by (output started at .../components/com_content/router.php:278) in .../templates/atomic/error.php on line 23

Warning: Cannot modify header information - headers already sent by (output started at .../components/com_content/router.php:278) in /.../templates/atomic/error.php on line 24
/o-kompanii/123/
Код:
На этой странице обнаружена циклическая переадресация
Загрузка веб-страницы по адресу http://сайт.ру/o-kompanii/123/error/error/error/error/error/error/error/error/error/error/ вызвала слишком много переадресаций. Попробуйте очистить для этого сервера файлы cookie или разрешить их прием от независимых сайтов. Если это не поможет, возможно, проблема связана не с вашим компьютером, а с конфигурацией сервера.
8. Удаляю файл error.php из папки templates/шаблон и снова копирую файл error.php из папки templates/system в папку templates/шаблон
9. Снова результат смотрю по странице /o-kompanii/ Набираю несуществующие url-ы:
/o-ko123mpanii/
Код:
Notice: Undefined index: id in .../components/com_content/router.php on line 278

/o-kompanii/123/

(уже на Русском и без ошибки линии 278 и на русском)

Где я допустила ошибку и как создать свою страницу 404?
Записан
Larisa
Давно я тут
****

Репутация: +40/-26
Offline Offline

Пол: Женский
Сообщений: 258


je te promets...


« Ответ #1 : 11.07.2012, 17:03:23 »

Да и запись в .htaccess

ErrorDocument 404 error тоже не помогла Sad
Записан
Efanych
Группа развития
*****

Репутация: +559/-0
Offline Offline

Пол: Мужской
Сообщений: 4051



« Ответ #2 : 11.07.2012, 17:07:44 »

У тебя шаблон нормальный или на фреймворке?
Записан
Larisa
Давно я тут
****

Репутация: +40/-26
Offline Offline

Пол: Женский
Сообщений: 258


je te promets...


« Ответ #3 : 11.07.2012, 17:11:51 »

У тебя шаблон нормальный или на фреймворке?
да atomic самый простецкий
Записан
Efanych
Группа развития
*****

Репутация: +559/-0
Offline Offline

Пол: Мужской
Сообщений: 4051



« Ответ #4 : 11.07.2012, 17:13:02 »

А можеш откатить все предыдущие попытки, чтоб работал как раньше?
Вот. Разберёшся?
http://joomlaforum.ru/index.php/topic,210051.0.html
Записан
Larisa
Давно я тут
****

Репутация: +40/-26
Offline Offline

Пол: Женский
Сообщений: 258


je te promets...


« Ответ #5 : 11.07.2012, 17:15:32 »

А можеш откатить все предыдущие попытки, чтоб работал как раньше?
Вот. Разберёшся?
http://joomlaforum.ru/index.php/topic,210051.0.html
это тоже пробовала... Кису я не поняла, а то, что предлагал SmokerMan не получилось Sad тож ошибка вылетала
Записан
Efanych
Группа развития
*****

Репутация: +559/-0
Offline Offline

Пол: Мужской
Сообщений: 4051



« Ответ #6 : 11.07.2012, 17:16:34 »

Кинь под спойлер полный код index.php
Записан
fbr
Живу я здесь
******

Репутация: +77/-5
Offline Offline

Сообщений: 844


« Ответ #7 : 11.07.2012, 17:23:57 »

Я у себя сделал проще

Перетащил скопировал в шаблон error.php и отредактировал так:

Код
<body>
<?php
 if ($this->_error->get('code') == '404') {
   header("HTTP/1.0 404 Not Found");
   header('Location: /sitemap');
   exit;
}
?>
</body>

где sitemap - алиас пункта меню

т.е по 404 происходит переадресация на карту сайта, где есть текст
"Указанного адреса не существует. Воспользуйтесь картой сайта"
Записан
Efanych
Группа развития
*****

Репутация: +559/-0
Offline Offline

Пол: Мужской
Сообщений: 4051



« Ответ #8 : 11.07.2012, 17:27:11 »

Цитировать
header("HTTP/1.0 404 Not Found");
    header('Location: /sitemap')
А проверял ответ сервера? Помоему при редиректе отдаётся код редиректа какой-нибуть, а не 404.
Записан
ELLE
Support Team
*****

Репутация: +768/-0
Online Online

Пол: Женский
Сообщений: 4321



« Ответ #9 : 11.07.2012, 17:32:37 »

из последних тем про 404
error.php
Код:
<?php
// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );
?>
<?php
if ($this->error->getCode() == '404') {
echo file_get_contents(JURI::root().'/404');
}
?>
несуществующие страницы отдают 404
Записан
Larisa
Давно я тут
****

Репутация: +40/-26
Offline Offline

Пол: Женский
Сообщений: 258


je te promets...


« Ответ #10 : 11.07.2012, 17:40:04 »

Я у себя сделал проще

Перетащил скопировал в шаблон error.php и отредактировал так:

Код
<body>
<?php
 if ($this->_error->get('code') == '404') {
   header("HTTP/1.0 404 Not Found");
   header('Location: /sitemap');
   exit;
}
?>
</body>

где sitemap - алиас пункта меню

т.е по 404 происходит переадресация на карту сайта, где есть текст
"Указанного адреса не существует. Воспользуйтесь картой сайта"
Спасибо! Наполовину помогло, теперь так:
/o-kompanii/123/ редиректит на страницу /error/ то есть так, как надо!
/o-ko123mpanii/ выдает ошибку:
Код:
Notice: Undefined index: id in .../components/com_content/router.php on line 278

Warning: Cannot modify header information - headers already sent by (output started at .../components/com_content/router.php:278) in .../templates/atomic/error.php on line 23

Warning: Cannot modify header information - headers already sent by (output started at .../components/com_content/router.php:278) in .../templates/atomic/error.php on line 24

Кинь под спойлер полный код index.php
Показать текстовый блок
Записан
ELLE
Support Team
*****

Репутация: +768/-0
Online Online

Пол: Женский
Сообщений: 4321



« Ответ #11 : 11.07.2012, 17:42:10 »

Цитировать
/o-kompanii/123/ редиректит на страницу /error/ то есть так, как надо!
а сама страница /o-kompanii/123/ что отдает, 404 или 301?
Записан
Larisa
Давно я тут
****

Репутация: +40/-26
Offline Offline

Пол: Женский
Сообщений: 258


je te promets...


« Ответ #12 : 11.07.2012, 17:46:07 »

из последних тем про 404
error.php
Код:
<?php
// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );
?>
<?php
if ($this->error->getCode() == '404') {
echo file_get_contents(JURI::root().'/404');
}
?>
несуществующие страницы отдают 404
Прописала в error.php Ваш код между тегами <body>

/o-ko123mpanii/ выдает ту же ошибку:
Код:
Код:
Notice: Undefined index: id in .../components/com_content/router.php on line 278

Warning: Cannot modify header information - headers already sent by (output started at .../components/com_content/router.php:278) in .../templates/atomic/error.php on line 23

Warning: Cannot modify header information - headers already sent by (output started at .../components/com_content/router.php:278) in .../templates/atomic/error.php on line 24
/o-kompanii/123/ выдал ошибку:
Код:
Warning: file_get_contents() [function.file-get-contents]: URL file-access is disabled in the server configuration in .../templates/atomic/error.php on line 27

Warning: file_get_contents(http://сайт.ру//404) [function.file-get-contents]: failed to open stream: no suitable wrapper could be found in .../templates/atomic/error.php on line 27
Записан
Larisa
Давно я тут
****

Репутация: +40/-26
Offline Offline

Пол: Женский
Сообщений: 258


je te promets...


« Ответ #13 : 11.07.2012, 17:46:37 »

а сама страница /o-kompanii/123/ что отдает, 404 или 301?
а как это узнать? Azn
Записан
ELLE
Support Team
*****

Репутация: +768/-0
Online Online

Пол: Женский
Сообщений: 4321



« Ответ #14 : 11.07.2012, 17:47:59 »

Цитировать
Прописала в error.php Ваш код между тегами <body>
это не мой код)
это такой весь файл error.php, <body> там нет

Цитировать
а как это узнать?
http://webmaster.yandex.ru/server-response.xml
http://mainspy.ru/otvet_servera
Записан
Larisa
Давно я тут
****

Репутация: +40/-26
Offline Offline

Пол: Женский
Сообщений: 258


je te promets...


« Ответ #15 : 11.07.2012, 17:54:32 »

А может это из-за того, что я меняла файл router.php?
Мне просто нужно было, чтоб в адресах страниц не было цифер и я вот нашла такое решение:
Показать текстовый блок
Сделала все, как там написано, только в файле /components/com_content/router.php я не нашла строчки:
Код:
if ($count === 1) {
вместо нее была строка
Код:
if ($count == 1) {
ну соответственно я ее и заменила на
Код:
if ($count == 1 && !$advanced) {
Может из-за этого у меня теперь не получается?
Записан
ELLE
Support Team
*****

Репутация: +768/-0
Online Online

Пол: Женский
Сообщений: 4321



« Ответ #16 : 11.07.2012, 17:56:54 »

ну понятно...я пас  Grin
Записан
Larisa
Давно я тут
****

Репутация: +40/-26
Offline Offline

Пол: Женский
Сообщений: 258


je te promets...


« Ответ #17 : 11.07.2012, 18:04:40 »

это не мой код)
это такой весь файл error.php, <body> там нет
http://webmaster.yandex.ru/server-response.xml
http://mainspy.ru/otvet_servera
Спасибочки! А я и не знала Azn код 200 был.
Теперь по совету Elle заменила весь код файла error.php на
Код:
<?php
// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );
?>
<?php
if ($this->error->getCode() == '404') {
echo file_get_contents(JURI::root().'/error');
}
?>
И вот какие ошибки получились:
/o-ko123mpanii/
Код:
Notice: Undefined index: id in .../components/com_content/router.php on line 278

Warning: file_get_contents() [function.file-get-contents]: URL file-access is disabled in the server configuration in .../templates/atomic/error.php on line 7

Warning: file_get_contents(http://сайт.ру//error) [function.file-get-contents]: failed to open stream: no suitable wrapper could be found in .../templates/atomic/error.php on line 7

/o-kompanii/123/
Код:
Warning: file_get_contents() [function.file-get-contents]: URL file-access is disabled in the server configuration in .../templates/atomic/error.php on line 7

Warning: file_get_contents(http://сайт//error) [function.file-get-contents]: failed to open stream: no suitable wrapper could be found in .../templates/atomic/error.php on line 7
Записан
Efanych
Группа развития
*****

Репутация: +559/-0
Offline Offline

Пол: Мужской
Сообщений: 4051



« Ответ #18 : 11.07.2012, 18:10:13 »

Вот попробуй. Это полный код error.php
Показать текстовый блок
Записан
Efanych
Группа развития
*****

Репутация: +559/-0
Offline Offline

Пол: Мужской
Сообщений: 4051



« Ответ #19 : 11.07.2012, 18:23:53 »

из последних тем про 404
error.php
Код:
<?php
// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );
?>
<?php
if ($this->error->getCode() == '404') {
echo file_get_contents(JURI::root().'/404');
}
?>
несуществующие страницы отдают 404
Прикольный способ. У меня заработал. Так проще всего получается.
Записан
SmokerMan
Профи
********

Репутация: +640/-23
Online Online

Пол: Мужской
Сообщений: 4743



« Ответ #20 : 11.07.2012, 18:28:31 »

Цитировать
<?php
  if ($this->_error->get('code') == '404') {
    header("HTTP/1.0 404 Not Found");
    header('Location: /index.php?Itemid=ID');
    exit;
 }
?>
вместо ID указать id нужного пункта меню.
Цитировать
И вот какие ошибки получились:
потому что данная опция не включена или не поддерживается на хостинге.
Записан
Efanych
Группа развития
*****

Репутация: +559/-0
Offline Offline

Пол: Мужской
Сообщений: 4051



« Ответ #21 : 11.07.2012, 18:59:08 »

Цитировать
header("HTTP/1.0 404 Not Found");
    header('Location: /index.php?Itemid=ID');
При такой комбинации ответ сервера всё равно 302
Записан
Larisa
Давно я тут
****

Репутация: +40/-26
Offline Offline

Пол: Женский
Сообщений: 258


je te promets...


« Ответ #22 : 12.07.2012, 09:19:42 »

Вот попробуй. Это полный код error.php
Показать текстовый блок
ооо, что-то начало получаться... но опять с ошибками Sad
/o-ko123mpanii/
Notice: Undefined index: id in .../components/com_content/router.php on line 278 и не та кодировка...
/o-kompanii/123/
это походу получилось, но кодировка не та Sad
Записан
Efanych
Группа развития
*****

Репутация: +559/-0
Offline Offline

Пол: Мужской
Сообщений: 4051



« Ответ #23 : 12.07.2012, 09:28:04 »

Цитировать
это походу получилось, но кодировка не та
Ты не знаеш какая нужна кодировка? Или как сохранить в нужной?
Цитировать
Notice: Undefined index: id in .../components/com_content/router.php
Если всё нормально работает, то просто отключи показ ошибок в админке. А вообще этот хак (я про цифры в урле) во-первых нафиг не нужен, во-вторых может легко слететь при обновлении.
Записан
Larisa
Давно я тут
****

Репутация: +40/-26
Offline Offline

Пол: Женский
Сообщений: 258


je te promets...


« Ответ #24 : 12.07.2012, 11:55:38 »

Ты не знаеш какая нужна кодировка? Или как сохранить в нужной?
все сохраняю в UTF-8 но получается так:

Если всё нормально работает, то просто отключи показ ошибок в админке.
а где и как?
А вообще этот хак (я про цифры в урле) во-первых нафиг не нужен, во-вторых может легко слететь при обновлении.
эта же ошибка появляется при .../123/ что и с цифрами в урле
Записан
Larisa
Давно я тут
****

Репутация: +40/-26
Offline Offline

Пол: Женский
Сообщений: 258


je te promets...


« Ответ #25 : 12.07.2012, 11:59:36 »

Если всё нормально работает, то просто отключи показ ошибок в админке.
отключила - помогло теперь при разных наборах кривая кодировка но больше ошибок нет)
Записан
Larisa
Давно я тут
****

Репутация: +40/-26
Offline Offline

Пол: Женский
Сообщений: 258


je te promets...


« Ответ #26 : 12.07.2012, 12:03:15 »

только ответ сервера  200
Записан
Larisa
Давно я тут
****

Репутация: +40/-26
Offline Offline

Пол: Женский
Сообщений: 258


je te promets...


« Ответ #27 : 12.07.2012, 12:14:11 »

Опа!.. получилось по совету SmokerMan - заменила весь код error.php на такой:
<?php
  if ($this->_error->get('code') == '404') {
    header("HTTP/1.0 404 Not Found");
    header('Location: /index.php?Itemid=ID');
    exit;
 }
?>
вместо ID указать id нужного пункта меню.
только код 200 отдает..
Записан
Efanych
Группа развития
*****

Репутация: +559/-0
Offline Offline

Пол: Мужской
Сообщений: 4051



« Ответ #28 : 12.07.2012, 13:19:18 »

Исправь так
Код:
header("HTTP/1.1 301 Moved Permanently");
  header('Location: /index.php?Itemid=ID');
Скопируй файл components\com_content\views\article\tmpl\default.php
в папку шаблона html/com_content/article/
И уже в этом файле в шаблоне вноси правки. Пропиши в самом верху
Код
<?php 
$sv = $_SERVER['REQUEST_URI'];
if ($sv == '/404') {
header("HTTP/1.0 404 Not Found");
} ?>
/404 это поидее тот урл, где твоя страница ошибки. Или /index.php?Itemid=ID если у тебя такой урл
Записан
Larisa
Давно я тут
****

Репутация: +40/-26
Offline Offline

Пол: Женский
Сообщений: 258


je te promets...


« Ответ #29 : 12.07.2012, 13:34:12 »

в папке шаблона HTML нет папки com_content
Записан
Страниц: [1] 2  Все   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Рейтинг@Mail.ru Rambler Top100 Powered by SMF 1.1.20 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet