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

NDanilov2015

  • Осваиваюсь на форуме
  • 35
  • 0 / 0
Добрый день!

На сайте http://alcopribor.ru/, который я обслуживаю, вместо 404-й страницы упорно идёт редирект на главную сайта. Так было всегда, просто клиент просит сделать кастомизированную 404-ю. Установил модуль Qlue Custom 404, однако ничего не изменилось. Joomla 2.5.6, PHP 5.3.10

Я сильно подозреваю, что дело в SEF-секции .htaccess, однако не могу разобраться т.к. мозг вообще не переваривает регулярных выражений. Прошу помощи, прилагаю сегмент .htaccess:
Цитировать
## Begin - Joomla! core SEF Section.
#
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
#
# If the requested path and file is not /index.php and the request
# has not already been internally rewritten to the index.php script
RewriteCond %{REQUEST_URI} !^/index\.php
# and the request is for something within the component folder,
# or for the site root, or for an extensionless URL, or the
# requested URL ends with one of the listed extensions
RewriteCond %{REQUEST_URI} /component/|(/[^.]*|\.(php|html?|feed|pdf|vcf|raw))$ [NC]
# and the requested path and file doesn't directly match a physical file
RewriteCond %{REQUEST_FILENAME} !-f
# and the requested path and file doesn't directly match a physical folder
RewriteCond %{REQUEST_FILENAME} !-d
# internally rewrite the request to the index.php script
RewriteRule .* index.php [L]
#
## End - Joomla! core SEF Section.
Также нельзя исключать того, что Joomla где-то в своих внутренностях делает этот паразитный редирект, хотелось бы узнать в каком направлении сам движок копать?
*

NDanilov2015

  • Осваиваюсь на форуме
  • 35
  • 0 / 0
PS. На сайте установлен VirtueMart.
*

NDanilov2015

  • Осваиваюсь на форуме
  • 35
  • 0 / 0
Проблема так и не решена, как бы ни ковырял всё что только можно :( Ни у кого нет идей?
*

antony2606

  • Давно я тут
  • 632
  • 46 / 4
  • Работаем!
Цитировать
Также нельзя исключать того, что Joomla где-то в своих внутренностях делает этот паразитный редирект, хотелось бы узнать в каком направлении сам движок копать?
еще и хостера нельзя исключать..!!

почитайте http://webmastermix.ru/lessons-joomla/134-stranitsa-oshibki-404-v-joomla.html
*

NDanilov2015

  • Осваиваюсь на форуме
  • 35
  • 0 / 0
Эврика! Нашел в .htaccess всё-таки место, которое создаёт проблему - листинг всей секции в первом посте приведен, а вот если закомментировать вот эту штуку:
Цитировать
RewriteRule .* index.php [L]
...то при заходе на несуществующую страницу вместо привычного патологического редиректа на главную выдаст:
Цитировать
Not Found
The requested URL /404test.html was not found on this server.
Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
Вопросов однако ещё больше стало:
а) почему не срабатывает встроенная 404-я страница Joomla либо даже та, которую должен выдавать установленный мной плагин Qlue Custom 404?

б) что в итоге делать с этим кодом в .htaccess? Ведь эта "SEF-секция" она как я понимаю, нужна для ЧПУ-ссылок, и при этом она пакостит на 404-ю, редиректя всё на главную. Может быть в index.php надо какие-то параметры передавать в этом RewriteRule чтобы была возможность реализовать 404-ю? Однако в самом index.php вообще не вижу кода, который бы принимал какие-то браузерные параметры, вот в чем засада!
*

NDanilov2015

  • Осваиваюсь на форуме
  • 35
  • 0 / 0
Уф, нашел виновника торжества (я-то искренне верил, что [L] в SEF-секции завершает применение правил "реврайта", а судя по всему не завершает и срабатывает строчка дальше вот такая):
Цитировать
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
Если эти 2 строки закомментировать, тогда всё работает! Но что хотел прошлый веб-программист (которого уже не найти) сделать такой секцией в .htaccess? Редирект с www на без www? Но почему он взял HTTP_HOST, а не скажем REQUEST_URI?
« Последнее редактирование: 23.06.2015, 20:41:33 от NDanilov2015 »
*

NDanilov2015

  • Осваиваюсь на форуме
  • 35
  • 0 / 0
Рано радоваться... теперь и без этого правила вместо 404-й главная вылазит, хотя полчаса назад я стабильно получал 404-ю когда его закомментировал! Совсем уже мистика возникает. :o
*

NDanilov2015

  • Осваиваюсь на форуме
  • 35
  • 0 / 0
Хостер говорит, он тут ни причем. У него свыше таких правил не спускается. Кроме того, я уже писал выше, что если закомментировать строчку в SEF-секции где редирект на index.php, то можно получить 404 Not Found от сервера. Однако у меня есть пример другого сайта, где эта секция абсолютно не мешает родной Джумловской 404-й выскакивать, а серверная не выскакивает при этом.

PS. В .htaccess можно вообще все правила убить, написанные прошлым программистом, кроме исходно Джумловских с которыми на других сайтах 404-я появляется в нормальном виде, и всё равно будет редирект на главную.
« Последнее редактирование: 23.06.2015, 22:02:31 от NDanilov2015 »
*

NDanilov2015

  • Осваиваюсь на форуме
  • 35
  • 0 / 0
Может быть viurtuemart гадит не по децки?
*

voland

  • Легенда
  • 11031
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
прошлым программистом
Так может кто-то воткнул где нить в ядро принудительный редирект и всё..
Есть такие.
И вообще - почему 2,5,6 а не 2,5,28?
*

SeBun

  • BanMaster
  • 4015
  • 259 / 5
  • @SeBun48
Попробуйте обноаить версию Joomla, предварительно сделав бекап. Если не поможет, проблема не у хостера а в вашем коде.
Оказываю услуги по Joomla | Миграция/Обновление | Сопровождение | IT-аутсорсинг | Недорогие домены и хостинг
*

NDanilov2015

  • Осваиваюсь на форуме
  • 35
  • 0 / 0
Всё, проблема с редиректами окончательно решена! :D

Ответ я нашел на зарубежном форуме, рекомендую всем в закладки куда-то сохранить:
https://forum.virtuemart.net/index.php?topic=119171.0
Это действительно VirtueMart пакостит, так решили его разработчики и в новой версии эту особенность лишь смягчили, но не убрали до конца. В общем, в файле /components/com_virtuemart/virtuemart.php в самом конце необходимо найти строку (обычно 110-111):
Код
$mainframe->redirect(JRoute::_ ('index.php?option=com_virtuemart&view=virtuemart', FALSE));
закомментировать ее и на ее место вписать следующий код:
Код
JError::raise(E_ERROR,'404','Not found');
$mainframe->close();
Вот тогда будет нормальная 404-я вылезать, которая соответствует тому, что генерит error.php в шаблоне.

Voland писал:
Цитировать
И вообще - почему 2,5,6 а не 2,5,28?
Но ведь 2.5.6 новее чем 2.5.28! ;)

SeBun писал:
Цитировать
Попробуйте обноаить версию Joomla, предварительно сделав бекап. Если не поможет, проблема не у хостера а в вашем коде.
Как оказалось, это VirtueMart пакостил, и заложили в него эту пакость разработчики, которые посчитали что вместо 404-й должна главная вылезти. А почему если бы обновление Joomla не помогло, то проблема была бы не у хостера? (Или Вы опечатались и хотели сказать, что как раз у хостера?)

...с этой проблемой покончено. Но клиент хочет кастомизированную 404-ю, я хочу для этой цели запрячь модуль Qlue Custom 404, установка проходит гладко. Однако при попытке зайти в админку модуля выдаёт:
Цитировать
Fatal error: Call to a member function get() on a non-object in /home/cp062426/public_html/administrator/components/com_qlue404/controller.php on line 31
Код в этом месте гласит:
Код
class Qlue404Controller extends JControllerLegacy {
....
public function display($cachable = false, $urlparams = false)
{
  ....
  $view   = $this->input->get('view', 'customs'); //Вот тут и возникает ошибка!
  $layout = $this->input->get('layout', 'default');
  $id     = $this->input->getInt('id');
}
Как заставить этот удобный компонент нормально заработать, устранить ошибку?
*

SeBun

  • BanMaster
  • 4015
  • 259 / 5
  • @SeBun48
SeBun писал:А почему если бы обновление Joomla не помогло, то проблема была бы не у хостера? (Или Вы опечатались и хотели сказать, что как раз у хостера?)
Как я написал, так и оказалось - проблема не у хостера и она принципиально не могла быть на стороне хостера. Но я предполагал, что проблема не в магазине а в ваших файлах, поэтому предложил обновление. Кто же мог подумать, что разработчики ВиртоМарта такую бяку устроят... Похвально, что вы нашли ответ!

Как заставить этот удобный компонент нормально заработать, устранить ошибку?
А оно вам надо? Зачем городить какие то компоненты, через которые вас потом и взломают, когда есть способ проще - в htaccess прописать путь до файла, выводящего персональную страницу 404?
Оказываю услуги по Joomla | Миграция/Обновление | Сопровождение | IT-аутсорсинг | Недорогие домены и хостинг
*

draff

  • Гуру
  • 5803
  • 434 / 7
  • ищу работу
*

NDanilov2015

  • Осваиваюсь на форуме
  • 35
  • 0 / 0
SeBun писал:
Цитировать
А оно вам надо? Зачем городить какие то компоненты, через которые вас потом и взломают, когда есть способ проще - в htaccess прописать путь до файла, выводящего персональную страницу 404?
Да я уже сам сделал, как по ссылке которую мне тут кидали. Всё работает.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как редактировать отдельную страницу Joomla 2.5?

Автор mrporter

Ответов: 0
Просмотров: 1132
Последний ответ 14.09.2023, 22:16:47
от mrporter
Проблема с переносом Joomla сайта с хостинга на денвер

Автор 62411

Ответов: 4
Просмотров: 1277
Последний ответ 21.02.2022, 20:22:11
от arma
Нужен редирект.htaccess для перенаправления с без id на id в url сайта

Автор MultiMatrix83

Ответов: 10
Просмотров: 831
Последний ответ 19.10.2021, 18:28:04
от draff
Долго открывается мобильная версия сайта. (подробнее в теме)

Автор 62411

Ответов: 6
Просмотров: 896
Последний ответ 13.04.2021, 15:07:31
от IToro82
Как вернуть фоновое изображение сайта?

Автор Camell

Ответов: 1
Просмотров: 948
Последний ответ 03.03.2020, 15:57:20
от Sgrey