Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-Joomla 3.4.1重定向包含缺少类别的URL_Joomla - Fatal编程技术网

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

PHP-Joomla 3.4.1重定向包含缺少类别的URL,joomla,Joomla,我正在使用Joomla 3.5附带的重定向插件。它适用于常规url,但当存在较旧的“缺少类别”url时,它会失败 除了添加我自己的重写规则,index.php中是否有php代码修复此问题?这就是正在发生的事情。与不再存在的页面的常规行为不同,您的页面遇到以下情况: if ($category == false) { return JError::raiseError(404, JText::_('JGLOBAL_CATEGORY_NOT_FOUND')); } if ($parent

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


除了添加我自己的重写规则,index.php中是否有php代码修复此问题?

这就是正在发生的事情。与不再存在的页面的常规行为不同,您的页面遇到以下情况:

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

if ($parent == false)
{
    return JError::raiseError(404, JText::_('JGLOBAL_CATEGORY_NOT_FOUND'));
}
这基本上是一个硬编码的404,可以在
/libraries/legacy/view/category/
中找到

这是因为api有一个奇怪的方面,尽管它说的是
com\u content
,但它并没有首先检查文章,而是首先检查类别。我认为这是一个支持长期不推荐的url结构的bug,应该加以修复以鼓励迁移,但这只是我的问题,问题是你能做什么

所以我想你要做的是在它发生之前拦截它,然后允许插件正常运行。我将如何处理这一问题,这实际上取决于您希望支持多少具有这种结构的URL。如果只是一对,你可以硬编码。如果需要大量插件,您可以在堆栈的早期创建插件,并通过修改
JInput
对象将请求更新为您想要的url。您可以通过复制然后添加到重定向插件或者制作自己的独立系统插件来实现这一点。近年来,我还没有仔细研究过重定向插件,不知道是否可以修改那里的错误处理,但这将是一个开始


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

能否显示失败链接的示例?当然:我直接从admin redirect global configuration(管理员重定向全局配置)中的重定向条目复制了该链接。因此,在源url中有该链接,然后在destination url字段中有其他内容?我只是想确定我能理解,这样我就可以试着复制。我讨厌这样一个事实,那就是它在寻找类别。这至少给了我一个正确方向的暗示。不管怎么说,这个网站的流量并不是很大。在redirect_links表上运行快速查询时,我发现143个URL存在此问题。其中,只有4个点击率超过100次。如果我能让.htaccess重定向正常工作,我可能只需要硬编码这4个。只要再看看怎么做。。。有一阵子了。