improved detection of WEBROOT

remotes/origin/stable
Robin Appelman 14 years ago
parent e4a5ef55fb
commit 56dfcce9b9

@ -35,8 +35,27 @@ session_start();
$SERVERROOT=substr(__FILE__,0,-17);
$DOCUMENTROOT=$_SERVER['DOCUMENT_ROOT'];
$SERVERROOT=str_replace("\\",'/',$SERVERROOT);
$count=strlen($DOCUMENTROOT);
$WEBROOT=substr($SERVERROOT,$count);
if(strpos($SERVERROOT,$DOCUMENTROOT)===0){
//if the serverroot is a subdir of the documentroot we can use this
$count=strlen($DOCUMENTROOT);
$WEBROOT=substr($SERVERROOT,$count);
}else{
//try some common patterns
$WEBROOT='';
if(strpos($_SERVER['REQUEST_URI'],'/~')!==false){
//owncloud is probable installed in a users home folder, extract the username from the uri and use it as base for the webroot
$part=substr($_SERVER['REQUEST_URI'],strpos($_SERVER['REQUEST_URI'],'/~')+1);
$part=substr($part,0,strpos($part,'/'));
$WEBROOT.='/'.$part;
}
if(strpos($SERVERROOT,'public_html')!==false){
//a common used folder name for websevers to store their sites
if($WEBROOT{strlen($WEBROOT)-1}!=='/'){
$WEBROOT.='/';
}
$WEBROOT.=substr($SERVERROOT,strpos($SERVERROOT,'public_html')+strlen('public_html'));
}
}
if($WEBROOT{0}!=='/' and $WEBROOT!=''){
$WEBROOT='/'.$WEBROOT;
}

Loading…
Cancel
Save