spUrl函数子目录使用
发布于:2022-01-17 09:50:54
#1 homexigua
我建立了admin目录,里边的index.php设置为
'url' => array( // URL设置
'url_path_info' => TRUE, // 是否使用path_info方式的URL
'url_path_base' => 'admin/index.php', // URL的根目录访问地址
),
模板中用spUrl('main','login')得到的地址是/index.php/main/login而不是在子目录中的/admin/index.php/main/login
求解?
2010-05-23 19:56:03
#2 homexigua
刚才又试了一下,:2.5.25版本的不存在此问题。新版本的确实就是如此
2010-05-23 20:30:17
#3 homexigua
新版本'url_path_base'这个不管如何配置都可以正常使用,好像这个参数没用了似的
2010-05-23 20:31:01
#4 jake
在sp2.3左右的时候,框架可以自动识别二级目录,所以后面版本的框架,都无需设置'url_path_base'
但是'url_path_base'是优先设置,方便一些更为复杂的用法。
2010-05-23 21:51:26
#5 homexigua
问题现在二级目录的时候,spurl函数无法取得正常的路径
本来取admin/index.php/main/index
结果取成了index.php/main/index
2010-05-23 21:55:39
#6 homexigua
解决,好像speedphp.php文件写反了
// 当在二级目录中使用SpeedPHP框架时,自动获取当前访问的文件名
if('' == $GLOBALS['G_SP']['url']["url_path_base"]){
$GLOBALS['G_SP']['url']["url_path_base"] = '/index.php';
}else{
if(basename($_SERVER['SCRIPT_NAME']) === basename($_SERVER['SCRIPT_FILENAME']))
$GLOBALS['G_SP']['url']["url_path_base"] = $_SERVER['SCRIPT_NAME'];
elseif (basename($_SERVER['PHP_SELF']) === basename($_SERVER['SCRIPT_FILENAME']))
$GLOBALS['G_SP']['url']["url_path_base"] = $_SERVER['PHP_SELF'];
elseif (isset($_SERVER['ORIG_SCRIPT_NAME']) && basename($_SERVER['ORIG_SCRIPT_NAME']) === basename($_SERVER['SCRIPT_FILENAME']))
$GLOBALS['G_SP']['url']["url_path_base"] = $_SERVER['ORIG_SCRIPT_NAME'];
}
2010-05-23 22:29:48
#7 jake
你上面用的是什么版本的?2.5和3的这一段是:
// 当在二级目录中使用SpeedPHP框架时,自动获取当前访问的文件名
if('' == $GLOBALS['G_SP']['url']["url_path_base"]){
if(basename($_SERVER['SCRIPT_NAME']) === basename($_SERVER['SCRIPT_FILENAME']))
$GLOBALS['G_SP']['url']["url_path_base"] = $_SERVER['SCRIPT_NAME'];
elseif (basename($_SERVER['PHP_SELF']) === basename($_SERVER['SCRIPT_FILENAME']))
$GLOBALS['G_SP']['url']["url_path_base"] = $_SERVER['PHP_SELF'];
elseif (isset($_SERVER['ORIG_SCRIPT_NAME']) && basename($_SERVER['ORIG_SCRIPT_NAME']) === basename($_SERVER['SCRIPT_FILENAME']))
$GLOBALS['G_SP']['url']["url_path_base"] = $_SERVER['ORIG_SCRIPT_NAME'];
}else{
$GLOBALS['G_SP']['url']["url_path_base"] = '/index.php';
}
2010-05-24 09:02:46
#8 homexigua
回复 7 jake 用的是3的版本,上边是我换过来后的代码,感觉换过来就可以正常获取了·!
好像url_path_base为空的时候可以正确判断,但是url_path_base不为空的时候反而强制变成了/index.php。
2010-05-24 09:16:41