实现简单的图片CDN
.htaccess文件内容: RewriteEngine On #RewriteCond %{HTTP_HOST} ^t.boss.com$ RewriteCond %{REQUEST_URI} !^$ #RewriteCond %{REQUEST_FILENAME} ^.*\.(jpg|jpeg|png|gif)$ [NC] RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*\.jpg)$ /sync_client.php?url=$1 [NC,QSA,L]
sync_client.php文件内容: <?php //var_dump($_GET['url']); //echo '<img src="http://hazy.allalla.com/inc/logo.jpg">'; $filepath = empty($_GET['url']) ? exit('no file') : $_GET['url']; $filepath = str_ireplace('\'', '', str_ireplace('"', '', $filepath)); $filepath = str_ireplace('\\', '/', $filepath); $dir = dirname($filepath); $ext = substr(strrchr( $filepath, '.' ), 1); if(!in_array($ext, array('jpg', 'jpeg', 'gif', 'png', 'bmp'))) exit('not allow file ext'); $domain = 'http://hazy.voovq.com/'; $url = $domain . $filepath; $content = file_get_contents_($url); if(strlen($content) < 20) exit('not allow content'); if(!is_dir($dir)) mkdir($dir, 0777, true); file_put_contents($filepath, $content); echo '<img src="/' . $filepath . '" />'; //获取URL的内容 function file_get_contents_($url) { if(empty($url)) return false; $useragent = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.168 Safari/535.19'; if(function_exists('curl_init')) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_TIMEOUT,30); curl_setopt($ch, CURLOPT_USERAGENT, $useragent); curl_setopt($ch, CURLOPT_REFERER, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); curl_setopt($ch, CURLOPT_HEADER, 0); $content = curl_exec($ch); curl_close($ch); }else{ $content = file_get_content($url); } return $content; } exit; ?>
就这么简单的几句话!放到相应的目录就行了。