0

私は Joomla 3.1.1 を使用しており、SEF と URL の書き換えを有効にしており、すべてがうまく機能しています。

私の問題は、次のようなサイトのディレクトリにアクセスしようとしたときに始まりました

www.mywebsite.com/myfolder

URLの書き換えが原因でエラーが発生し続けました。そのため、そのディレクトリ専用の .htaccess ファイルを配置することで解決し、最終的にアクセスできましたが、コードphpを実行しようとすると、このエラーが発生し続け、時間の経過とともに行き来します.24時間のようです私は開発の3日目にそれを手に入れています。

JPath::check Use of relative paths not permitted

joomlaがディレクトリへのアクセスをブロックしている場合は素晴らしいですが、アクセスを許可できるディレクトリのホワイトリストのように作成する方法はありますか

また、違いがあるかどうかはわかりませんが、www.mywebsite.com/myfolder を実行すると、

include_once  'another.php';

another.php ファイルの内容は

define( '_JEXEC', 1 ) or die('restricted');
define( 'JPATH_BASE', dirname(__FILE__) . '/../');
require_once ( JPATH_BASE . '/includes/defines.php' );
require_once ( JPATH_BASE . '/includes/framework.php' ); 
$app =& JFactory::getApplication('site');
$app->initialise();

また、another.php ファイルのコンテンツを開いて再保存すると、エラーが消えて、翌日再びポップアップするだけです。

4

1 に答える 1

0

問題が見つかりました。

開いたら/libraries/joomla/filesystem/path.php

見つけるだろう

public static function check($path, $ds = DIRECTORY_SEPARATOR)
{
    if (strpos($path, '..') !== false)
    {
        // Don't translate
        throw new Exception('JPath::check Use of relative paths not permitted', 20);
    }

    $path = self::clean($path);
    if ((JPATH_ROOT != '') && strpos($path, self::clean(JPATH_ROOT)) !== 0)
    {
        throw new Exception('JPath::check Snooping out of bounds @ ' . $path, 20);
    }

    return $path;
}

最初の if ステートメントは、私の jpath がパスに /../ を持っているため、落ち続けた場所です。それを解決するために、throw new Exception 行をコメントアウトしました。

于 2013-08-13T02:53:55.850 に答える