Browse Source

improved detection of WEBROOT

tags/v3.0
Robin Appelman 14 years ago
parent
commit
56dfcce9b9
1 changed files with 21 additions and 2 deletions
  1. 21
    2
      inc/lib_base.php

+ 21
- 2
inc/lib_base.php View File

$SERVERROOT=substr(__FILE__,0,-17); $SERVERROOT=substr(__FILE__,0,-17);
$DOCUMENTROOT=$_SERVER['DOCUMENT_ROOT']; $DOCUMENTROOT=$_SERVER['DOCUMENT_ROOT'];
$SERVERROOT=str_replace("\\",'/',$SERVERROOT); $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!=''){ if($WEBROOT{0}!=='/' and $WEBROOT!=''){
$WEBROOT='/'.$WEBROOT; $WEBROOT='/'.$WEBROOT;
} }

Loading…
Cancel
Save