44 lines
		
	
	
		
			931 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			44 lines
		
	
	
		
			931 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/rc
 | 
						|
full_path=`{echo $"FS_ROOT^$"PATH_INFO | urldecode.awk}
 | 
						|
full_path=$"full_path
 | 
						|
if(~ $full_path */)
 | 
						|
	error 503
 | 
						|
if(test -d $full_path){
 | 
						|
	redirect perm $"location^'/' \
 | 
						|
		'URL not quite right, and browser did not accept redirect.'
 | 
						|
	exit
 | 
						|
}
 | 
						|
if(! test -e $full_path){
 | 
						|
	error 404
 | 
						|
	exit
 | 
						|
}
 | 
						|
if(! test -r $full_path){
 | 
						|
	error 503
 | 
						|
	exit
 | 
						|
}
 | 
						|
do_log 200
 | 
						|
switch($full_path){
 | 
						|
case *.html *.htm
 | 
						|
        type=text/html
 | 
						|
case *.css
 | 
						|
        type=text/css
 | 
						|
case *.txt
 | 
						|
        type='text/plain; charset=utf-8'
 | 
						|
case *.jpg *.jpeg
 | 
						|
        type=image/jpeg
 | 
						|
case *.gif
 | 
						|
        type=image/gif
 | 
						|
case *.png
 | 
						|
        type=image/png
 | 
						|
case *
 | 
						|
		type=`{file -m $full_path || file -i $full_path}        # GROSS
 | 
						|
}
 | 
						|
max_age=3600	# 1 hour
 | 
						|
echo 'HTTP/1.1 200 OK'^$cr
 | 
						|
emit_extra_headers
 | 
						|
echo 'Content-type: '^$type^'; charset=utf-8'^$cr
 | 
						|
echo 'Content-length: '^`{ls -l $full_path | awk '{print $6}'}
 | 
						|
echo 'Cache-control: max-age='^$max_age^$cr
 | 
						|
echo $cr
 | 
						|
exec cat $full_path
 |