Джумла! отображать статью на основе URL вместо страницы 404

У нас есть сайт на базе Joomla! в каталоге joomla есть много других каталогов, например:

C:\myjoomlawebsite
  ...joomla directories...
  \myspecialdirectory

в «myspecialdirectory» есть ресурсы, которые иногда доступны, а иногда недоступны, как можно было бы предположить, когда ресурс (страница php) недоступен, отображается страница 404.

Что я хотел бы сделать, так это «каким-то образом» сообщить joomla, что когда пользователь пытается получить доступ к странице, расположенной в «myspecialdirectory», и она недоступна, он должен показывать страницу статьи, а не 404.

  • если пользователь обращается к mydomain.com/ ‹- все хорошо
  • если пользователь обращается к mydomain.com/existingpage.php ‹- все хорошо
  • если пользователь получает доступ к mydomain.com/unavailablepage.php ‹- должен отображаться 404
  • если пользователь обращается к mydomain.com/myspecialdirectory/existingpage.php ‹- все хорошо
  • если пользователь обращается к mydomain.com/myspecialdirectory/unavilablepage.php ‹- здесь я хочу, чтобы пользователь видел страницу статьи вместо 404

person Community    schedule 27.01.2012    source источник


Ответы (3)


Проверьте это.

Для версии 1.5

if (($this->error->code) == '404') {
header('Location: /index.php?option=com_content&view=article&id=75');
exit;
}

Для 1.6 и 1.7

if (($this->error->getCode()) == '404') {
person Rikesh    schedule 27.01.2012
comment
Это не сработает, потому что myspecialdirectory находится за пределами фреймворка Joomla. - person Brent Friar; 28.01.2012
comment
@Rikesh спасибо, трюк с заголовком сработал отлично, но мое условие было основано на JURI getPath(), я искал этот экземпляр на основе требований и установил местоположение заголовка там, где мне нужно - person ; 29.01.2012

Поскольку этот каталог находится за пределами фреймворка Joomla, и вам нужен только один каталог для перенаправления на страницу Joomla вместо 404, то самый простой способ добиться этого — использовать собственный htaccess в каталоге, который вы хотите перенаправить. Вы хотели бы добавить это в htaccess только в myspecialdirectory

ErrorDocument 404 /URL TO JOOMLA ARTICLE.php
person Brent Friar    schedule 28.01.2012

Решения, соответствующие стандартам, можно найти здесь: http://magazine.joomla.org/component/k2/item/230

person Rob Porter    schedule 29.01.2012