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 without $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 になります。 =バー