我对 Joomla 2.5 有一个非常紧张的问题,我找不到任何答案。我有一个带有一些链接的页面。每个链接都类似于 www.myhost.com/joomla/custom_dev/myscript.php?foo=bar。myscript.php 是一个外部脚本,它不是 Joomla 的一部分,但我需要 Joomla 的一些功能框架。
所以我使用经典代码:
// Get Joomla! framework
define( '_JEXEC', 1 );
define( '_VALID_MOS', 1 );
define( 'JPATH_BASE', realpath(dirname(__FILE__).'/../../'));
define( 'DS', DIRECTORY_SEPARATOR );
require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' );
require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' );
$mainframe =& JFactory::getApplication('site');
$mainframe->initialise();
它在我的测试环境中运行良好。
但是在实时服务器上,我收到了 404 错误。使用 FireBug,我看到指向外部文件的链接根本不起作用:它转到 303 重定向,然后转到 404 错误。我尝试了很多东西......现在我找到了导致这个问题的原因:
$mainframe->initialise();
没有这条线,就没有重定向并且链接有效。但我没有框架功能(我需要它们!)。
我也尝试直接访问我的脚本。
www.myhost.com/joomla/custom_dev/myscript.php?foo=bar with $mainframe->initialise() -> 出现 404 错误(由许多 303 重定向引起)
www.myhost.com/joomla/custom_dev/myscript.php?foo=bar 没有 $mainframe->initialise() -> 没有错误,显示没有 Joomla 框架可以显示的内容...
我希望我足够清楚!
编辑:我已经删除了我的自定义 404 页面,真正的 404 原因是找不到该类别。当我尝试 www.myhost.com/joomla/custom_dev/another_script.php 我没有错误。
编辑 2:另一个信息:似乎当我使用 $mainframe->initialise() 时,它会自动在我的 URL 中的某处添加语言,所以它变成 www.myhost.com/joomla/custom_dev/en/myscript.php?foo =酒吧