PHP - Joomla 3.4.1重定向包含缺少类别的URL

时间:2015-06-18 18:28:11

标签: joomla

我正在使用Joomla 3.5附带的重定向插件。它适用于常规网址,但是当有较旧的“缺失类别”网址时,它会失败。

除了添加我自己的重写规则之外,还是在index.php中有一个php代码修复?

1 个答案:

答案 0 :(得分:0)

这就是发生的事情。与不再存在的页面的常规行为不同,您的页面符合以下条件:

if ($category == false)
{
    return JError::raiseError(404, JText::_('JGLOBAL_CATEGORY_NOT_FOUND'));
}

if ($parent == false)
{
    return JError::raiseError(404, JText::_('JGLOBAL_CATEGORY_NOT_FOUND'));
}

这基本上是/libraries/legacy/view/category/中找到的硬编码404。

这是因为api的这个奇怪的方面,即使它说com_content它没有先检查文章,它首先检查类别。我认为这是一个支持长时间弃用的网址结构的错误,应该修复以鼓励迁移,但这只是我,问题是你能做什么。

所以你想要做的就是在它发生之前拦截它然后允许插件的正常操作。我将如何接近这取决于你期望必须支持多少具有这种结构的网址。如果它只是一对,你可以硬编码。如果它很多,你可以在堆栈的早期做一个插件,让它通过修改JInput对象将请求更新到你想要的url。您可以通过复制然后添加到重定向插件或创建自己的独立系统插件来实现。近几年我没有仔细查看重定向插件,知道你是否可以修改那里的错误处理,但这将是开始的地方。

有关插件的更多帮助,请尝试[joomla.se]。