我正在使用Joomla 3.1.1,并且我启用了SEF和URL重写,一切都运行良好。
当我尝试访问我的网站目录(例如
)时,我的问题就出现了www.mywebsite.com/myfolder
由于URL重写,我一直收到错误消息。所以我解决了这个问题,只为该目录输入了一个.htaccess文件,我终于能够访问它了但是现在当我尝试运行代码php时我不断收到这个错误,它随着时间的推移而来,似乎是24小时因为我现在正在开发我的第三天。
JPath::check Use of relative paths not permitted
如果joomla阻止访问很棒的目录,那么有没有办法创建像我可以允许访问的目录白名单
也不知道它是否有所不同,但是当我运行www.mywebsite.com/myfolder时 我正在调用一个有
的php文件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文件的内容,错误消失只会在第二天再次弹出。
答案 0 :(得分: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在路径中有一个/../。要解决它,我已经注释掉了抛出新的Exception行。