34 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| // custom routing for stand-alone mode, basically
 | |
| // .htaccess for the built-in php web server
 | |
| if (PHP_SAPI !== 'cli-server') {
 | |
|     die('cli only');
 | |
| }
 | |
| 
 | |
| // warehouse files
 | |
| $matches = [];
 | |
| if (preg_match('/\/_(images|thumbs)\/([0-9a-f]{2})([0-9a-f]{30}).*$/', $_SERVER["REQUEST_URI"], $matches)) {
 | |
|     header('Content-Type: image/jpeg');
 | |
|     header("Cache-control: public, max-age=86400");
 | |
|     print(file_get_contents("data/$matches[1]/$matches[2]/$matches[2]$matches[3]"));
 | |
|     return true;
 | |
| }
 | |
| 
 | |
| // if file exists, serve it as normal
 | |
| elseif (is_file("." . explode("?", $_SERVER["REQUEST_URI"])[0])) {
 | |
|     return false;
 | |
| }
 | |
| 
 | |
| // all other requests (use shimmie routing based on URL)
 | |
| else {
 | |
|     unset($matches);
 | |
|     // PHP_SELF is very unreliable, but there's no(?) better way to know what
 | |
|     // website subdirectory we're installed in - if we're using router.php, then
 | |
|     // let's blindly assume that we're in the root directory.
 | |
|     $_SERVER["PHP_SELF"] = "/index.php";
 | |
|     $_GET['q'] = explode("?", $_SERVER["REQUEST_URI"])[0];
 | |
|     // if we use a custom handler, we need to do our own access log
 | |
|     error_log("{$_SERVER['REMOTE_ADDR']}:{$_SERVER['REMOTE_PORT']} [???]: {$_GET['q']}");
 | |
|     require_once "index.php";
 | |
| }
 |