diff --git a/.htaccess b/.htaccess index 508242c49..1fa4957a4 100644 --- a/.htaccess +++ b/.htaccess @@ -3,6 +3,7 @@ RewriteEngine On # image... RewriteRule ^([a-zA-Z0-9_]+)/files/attach/images/(.*) ./files/attach/images/$2 [L] RewriteRule ^([a-zA-Z0-9_]+)/files/member_extra_info/(.*) ./files/member_extra_info/$2 [L] +RewriteRule ^([a-zA-Z0-9_]+)/files/cache/(.*) ./files/cache/$2 [L] RewriteRule ^([a-zA-Z0-9_]+)/modules/(.*) ./modules/$2 [L] RewriteRule ^([a-zA-Z0-9_]+)/common/(.*) ./common/$2 [L] RewriteRule ^([a-zA-Z0-9_]+)/widgets/(.*) ./widgets/$2 [L] diff --git a/classes/context/Context.class.php b/classes/context/Context.class.php index 3958f822f..1833eaa37 100644 --- a/classes/context/Context.class.php +++ b/classes/context/Context.class.php @@ -864,17 +864,8 @@ // body 내의 를 header로 이동 $content = preg_replace_callback('!!is', array($this,'moveStyleToHeader'), $content); - //
코드 변환 - $content = preg_replace('/\/]*)(\/>|>)/i','', $content); - - // 몇가지 대문자 태그를 소문자로 변경 - //$content = preg_replace_callback('!<(\/){0,1}([A-Z]+)([^>]*?)>!s',array($this,'transTagToLowerCase'), $content); - - // 코드를 코드로 변환 - $content = preg_replace('//i','', $content); - - // blogapi tool에서 삽입된 코드 삭제 - //$content = str_replace('atomicselection="true"','',$content); + // 코드 변환 + $content = preg_replace('/<(img|br)([^>\/]*)(\/>|>)/i','<$1$2 />', $content); return $content; } diff --git a/classes/display/DisplayHandler.class.php b/classes/display/DisplayHandler.class.php index 1cba78241..ff14ce5c7 100644 --- a/classes/display/DisplayHandler.class.php +++ b/classes/display/DisplayHandler.class.php @@ -87,16 +87,9 @@ function display($content) { $content .= $this->_debugOutput(); - $path = getScriptPath(); - - // commons/modules/files/widgets/layouts/addons 로 시작되는 src나 href의 값을 절대경로로 변경 - $content = preg_replace('!(href|src)=("|\'){0,1}(commons|modules|widgets|layouts|addons|files)!is', '\\1=\\2'.$path.'\\3', $content); - $content = preg_replace('!(href|src)=("|\'){0,1}\.\/([a-zA-Z0-9\_^\/]+)\/!is', '\\1=\\2'.$path.'\\3/', $content); - // 출력하기 전에 trigger 호출 (after) ModuleHandler::triggerCall('display', 'after', $content); - if($this->gz_enabled) print ob_gzhandler($content, 5); else print $content; } diff --git a/classes/optimizer/Optimizer.class.php b/classes/optimizer/Optimizer.class.php index d2ca362e3..ef73c6757 100644 --- a/classes/optimizer/Optimizer.class.php +++ b/classes/optimizer/Optimizer.class.php @@ -124,6 +124,8 @@ $size = filesize($content_file); $mtime = filemtime($content_file); $class_mtime = filemtime("./classes/optimizer/Optimizer.class.php"); + + // js, css 파일을 php를 통해서 출력하고 이 출력시에 헤더값을 조작하여 캐싱과 압축전송이 되도록 함 (IE6는 CSS파일일 경우 gzip압축하지 않음) $header_buff = ''; FileHandler::writeFile($filename, $header_buff); } @@ -154,11 +174,14 @@ exit(); * @brief css의 경우 import/ background 등의 속성에서 사용되는 url내의 경로를 변경시켜줌 **/ function replaceCssPath($file, $str) { + // css 파일의 위치를 구함 $this->tmp_css_path = Context::getRequestUri().preg_replace("/^\.\//is","",dirname($file))."/"; - $str = preg_replace_callback('!url\(("|\')?([^\)]+)("|\')?\)!is', array($this, '_replaceCssPath'), $str); + // url() 로 되어 있는 css 파일의 경로를 변경 + $str = preg_replace_callback('!url\(("|\')?([^\)]+)("|\')?\)!is', array($this, '_replaceCssPath'), $str); $str = preg_replace('!\/([^\/]*)\/\.\.\/!is','/', $str); + // charset 지정 문구를 제거 $str = preg_replace('!@charset([^;]*?);!is','',$str); return $str;