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

LemSug

  • Новичок
  • 6
  • 0 / 0
Доброго времени суток.

Есть мультиязычный сайт (русская и украинская версии). На сайте используется Кобальт 8.
Настроил кастомную страницу 404 используя гайд из документации Joomla! https://docs.joomla.org/Create_a_Custom_404_Error_Page Работает. Но надо что бы с укр. версии сайта кидало на укр. вариант 404.
id статьи для русской 404 561, а для укр. 562.
Думал раньше, что умею пользоваться поиском, но я банально не смог найти ни одного упоминания о нескольких страницах 404 для одного сайта.
Посоветовали в errors.php к существующему коду для одной страницы 404
Код
if (($this->_error->getCode()) == '404') {
header("HTTP/1.0 404 Not Found");
header('Location: /index.php?option=com_cobalt&view=record&id=561');
exit;}
добавить такой код:
Код
<?php
$url =
$_SERVER['HTTP_REFERER'];
$lang = '/uk/';

$pos = strpos($url, $lang);

if($pos){
 $id = 562;
} else{
 $id = 561;
}
if (($this->_error->getCode()) == '404') {
header("HTTP/1.0 404 Not Found");
header("Location: /index.php?option=com_cobalt&view=record&id=$id");
exit;}
?>
К сожалению не работает. С укр. зеркала упорно продолжает перекидывать только на русскую 404 (index.php?option=com_cobalt&view=record&id=561)
Чувствую, что упускаю что-то не сложное, но не могу никак понять что ж не так.
Надеюсь на вашу помощь.
*

LemSug

  • Новичок
  • 6
  • 0 / 0
Может хотя бы направление для поиска подкинет кто?
*

Ilhom666

  • Завсегдатай
  • 1384
  • 184 / 0
в плагине Фильтр языка "Автоматическая смена языка" не включена?
*

LemSug

  • Новичок
  • 6
  • 0 / 0
Ilhom666, включена.
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Неверный подход. И в с мануалом я не согласен, ИМХО, вредная статья, в которой описывается не решение, а хак. За вывод ошибок без перенаправлений отвечает файл шаблона error.php. В нём можно указать языковые константы.
*

LemSug

  • Новичок
  • 6
  • 0 / 0
Филипп Сорокин, Именно этот файл и редактировал. Каким образом указываются языковые константы, не подскажете?
*

LemSug

  • Новичок
  • 6
  • 0 / 0
effrit, не выходит. Либо я не там пишу. В php понимаю чуть больше чем ничего, к сожалению.
*

LemSug

  • Новичок
  • 6
  • 0 / 0
effrit, Вы мой спаситель. Работает наконец-то. Весь мозг сломал уже пытаясь настроить. Спасибо огромное.
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Филипп Сорокин, Именно этот файл и редактировал. Каким образом указываются языковые константы, не подскажете?

Откройте дефолтный файл error.php шаблона Protostar и посмотрите, как там реализован вывод ошибок. Перенаправление — это ужасный хак, никогда так не делайте. Вы даже описание ошибки не сможете вывести, а это всегда очень полезно при мало-мальски грамотном подходе к разработке.
*

AndreN

  • Захожу иногда
  • 53
  • 1 / 0
вот так попробуйте

Код
$id = 562;
$lang = JFactory::getLanguage();
$lng=$lang->getTag();
if($lng=="ru-RU") $id=561;

561 - это id страницы ошибки. А что тогда 562 в первой строчке?
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как установить header Cache-Control только для одной страницы по URL?

Автор Slava77

Ответов: 0
Просмотров: 62
Последний ответ 23.03.2024, 00:16:36
от Slava77
Как вставить модуль в код нужной страницы php?

Автор zvi

Ответов: 9
Просмотров: 3777
Последний ответ 21.02.2024, 11:03:08
от saynez
Убрать блок в мобильной версии сайта

Автор Grigorii

Ответов: 10
Просмотров: 619
Последний ответ 10.02.2024, 19:38:34
от darkghost
[Решено] Перестали работать переходы по меню сайта

Автор AlexP750

Ответов: 12
Просмотров: 482
Последний ответ 06.02.2024, 12:42:26
от AlexP750
Замена данных сайта на данные поддомена

Автор rezchik

Ответов: 5
Просмотров: 350
Последний ответ 05.02.2024, 11:45:36
от web1