#!/usr/bin/php
<?php
/**
 * mass virtual hosting - mod_rewrite rule
 * --------------------------------------------
 *
 * This source file is subject to the GNU GPL license.
 *
 * @link       http://jaybee.cz/
 * @author     Jan Breuer <jan.breuer@jaybee.cz>
 * @copyright  Copyright (c) 2008 Jan Breuer
 * @license    GNU GENERAL PUBLIC LICENSE
 */

$HOME_DIR="/home/";
$SYSTEM_DIR="/var/www/";
$DEFAULT_PAGE="index/index.php";
$SERVER_ALIAS=array("mysql","pg","ftp");

if(!
defined("STDIN")) {    define("STDIN"fopen('php://stdin''r')); }

while(
$line fgets(STDIN)) {
    
// zruseni konce radku
    
$line trim($line);

    
// oddeleni prvni casti nazvu serveru a URI
    
if(eregi("^([^/]+)(/(.*))?$"$line$m)) {
        
$domain $m[1];
        
$uri $m[3] ? $m[3] : "";
    } else {
        
$domain "";
        
$uri "";
    }

    
// rozlozeni nazvu serveru po teckach
    
$domain_parts explode(".",$domain);

    
$domain_parts array_reverse($domain_parts);

    
// sestaveni cesty na lokalnim disku
    
$base_dir $HOME_DIR .
        
$domain_parts[1] . "." .
        
$domain_parts[0] . "/" .
        ((
count($domain_parts) > 2) ? $domain_parts[2] : "www") . "/";

    if(!
file_exists($base_dir)) {
        
$base_dir $SYSTEM_DIR;
        
$service = isset($domain_parts[2]) ? $domain_parts[2] : "";
        if(
in_array($service,$SERVER_ALIAS)) {    
            
$base_dir .= $service."/";
        } else {
            
$base_dir .= $DEFAULT_PAGE;
            
$uri "";
        }
    }
    
// vraceni cesty zpet do apache
    
echo $base_dir.$uri."\n";
}
?>