Changeset 4278 for sandbox

Show
Ignore:
Timestamp:
06/12/2008 02:37:22 PM (3 months ago)
Author:
zero
Message:

rewrite module사용시 몇가지 상황에 대해 url을 디렉토리 형식으로 추가 변경하도록 함

Location:
sandbox
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • sandbox/.htaccess

    r3583 r4278  
    4949RewriteRule ^([a-zA-Z0-9_]+)/category/([[:digit:]]+)$ ./index.php?mid=$1&category=$2 [L] 
    5050 
     51# mid + act + document_Srl  
     52RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([[:digit:]]+)$ ./index.php?mid=$1&document_srl=$3&act=$2 [L] 
     53 
     54# mid + document_Srl + page 
     55RewriteRule ^([a-zA-Z0-9_]+)/([[:digit:]]+)/page/([[:digit:]]+)$ ./index.php?mid=$1&document_srl=$2&page=$3 [L] 
     56 
    5157# mid + category + page 
    5258RewriteRule ^([a-zA-Z0-9_]+)/category/([[:digit:]]+)/page/([[:digit:]]+)$ ./index.php?mid=$1&category=$2&page=$3 [L] 
     
    6470RewriteRule ^([a-zA-Z0-9_]+)/writer/(.*)$ ./index.php?mid=$1&search_target=nick_name&search_keyword=$2 [L] 
    6571 
     72# mid + document_Srl + page + act 
     73RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([[:digit:]]+)/page/([[:digit:]]+)$ ./index.php?mid=$1&document_srl=$3&page=$4&act=$2 [L] 
     74 
    6675# module link 
    6776RewriteRule ^([a-zA-Z0-9_]+)(/){0,1}$ ./index.php?mid=$1 [L] 
  • sandbox/classes/context/Context.class.php

    r4274 r4278  
    585585            else $path = $this->getRequestUri(RELEASE_SSL); 
    586586 
    587             // rewrite모듈을 사용하고 인자의 값이 4개 이하일 경우 
    588             if($this->allow_rewrite && $var_count < 4) { 
     587            // rewrite모듈을 사용할때 getUrl()을 이용한 url 생성 
     588            if($this->allow_rewrite) { 
     589                if(count($get_vars)) foreach($get_vars as $key => $value) if($value !== 0 && !$value) unset($get_vars[$key]); 
     590 
    589591                $var_keys = array_keys($get_vars); 
    590  
    591                 if($var_count == 1) { 
    592                     if($var_keys[0]=='mid') return $path.$get_vars['mid']; 
    593                     elseif($var_keys[0]=='document_srl') return $path.$get_vars['document_srl']; 
    594                 } elseif($var_count == 2) { 
    595                     asort($var_keys); 
    596                     $target = implode('.',$var_keys); 
    597                     if($target=='act.mid' && !preg_match('/([A-Z]+)/',$get_vars['act'])) return sprintf('%s%s/%s',$path,$get_vars['mid'],$get_vars['act']); 
    598                     elseif($target=='document_srl.mid')  return sprintf('%s%s/%s',$path,$get_vars['mid'],$get_vars['document_srl']); 
    599                     elseif($target=='act.document_srl')  return sprintf('%s%s/%s',$path,$get_vars['document_srl'],$get_vars['act']); 
    600                     elseif($target=='mid.page')  return sprintf('%s%s/page/%s',$path,$get_vars['mid'],$get_vars['page']); 
    601                     elseif($target=='category.mid')  return sprintf('%s%s/category/%s',$path,$get_vars['mid'],$get_vars['category']); 
    602                 } elseif($var_count == 3) { 
    603                     asort($var_keys); 
    604                     $target = implode('.',$var_keys); 
    605                     if($target=='act.document_srl.key') { 
     592                asort($var_keys); 
     593                $target = implode('.',$var_keys); 
     594 
     595                switch($target) { 
     596                    case 'mid' :  
     597                        return $path.$get_vars['mid']; 
     598                    case 'document_srl' :  
     599                        return $path.$get_vars['document_srl']; 
     600                    case 'act.mid' :  
     601                        return sprintf('%s%s/%s',$path,$get_vars['mid'],$get_vars['act']); 
     602                    case 'document_srl.mid' :  
     603                        return sprintf('%s%s/%s',$path,$get_vars['mid'],$get_vars['document_srl']); 
     604                    case 'act.document_srl' :  
     605                        return sprintf('%s%s/%s',$path,$get_vars['document_srl'],$get_vars['act']); 
     606                    case 'mid.page' :  
     607                        return sprintf('%s%s/page/%s',$path,$get_vars['mid'],$get_vars['page']); 
     608                    case 'category.mid' :  
     609                        return sprintf('%s%s/category/%s',$path,$get_vars['mid'],$get_vars['category']); 
     610                    case 'act.document_srl.key' :  
    606611                        return sprintf('%s%s/%s/%s',$path,$get_vars['document_srl'],$get_vars['key'],$get_vars['act']); 
    607                     } elseif($target=='category.mid.page') { 
     612                    case 'document_srl.mid.page' :  
     613                        return sprintf('%s%s/%s/page/%s',$path,$get_vars['mid'],$get_vars['document_srl'],$get_vars['page']); 
     614                    case 'category.mid.page' :  
    608615                        return sprintf('%s%s/category/%s/page/%s',$path,$get_vars['mid'],$get_vars['category'],$get_vars['page']); 
    609                     } elseif($target=='mid.search_keyword.search_target' && $get_vars['search_target']=='tag') { 
    610                         return sprintf('%s%s/tag/%s',$path,$get_vars['mid'],str_replace(' ','-',$get_vars['search_keyword'])); 
    611                     } elseif($target=='mid.search_keyword.search_target' && $get_vars['search_target']=='regdate') { 
    612                         if(strlen($get_vars['search_keyword'])==8) return sprintf('%s%s/%04d/%02d/%02d',$path,$get_vars['mid'],substr($get_vars['search_keyword'],0,4),substr($get_vars['search_keyword'],4,2),substr($get_vars['search_keyword'],6,2)); 
    613                         elseif(strlen($get_vars['search_keyword'])==6) return sprintf('%s%s/%04d/%02d',$path,$get_vars['mid'],substr($get_vars['search_keyword'],0,4),substr($get_vars['search_keyword'],4,2)); 
    614                     } 
     616                    case 'mid.search_keyword.search_target' : 
     617                        switch($get_vars['search_target']) { 
     618                            case 'tag' :  
     619                                return sprintf('%s%s/tag/%s',$path,$get_vars['mid'],str_replace(' ','-',$get_vars['search_keyword'])); 
     620                            case 'nick_name' :  
     621                                return sprintf('%s%s/writer/%s',$path,$get_vars['mid'],str_replace(' ','-',$get_vars['search_keyword'])); 
     622                            case 'regdate' :  
     623                                if(strlen($get_vars['search_keyword'])==8) return sprintf('%s%s/%04d/%02d/%02d',$path,$get_vars['mid'],substr($get_vars['search_keyword'],0,4),substr($get_vars['search_keyword'],4,2),substr($get_vars['search_keyword'],6,2)); 
     624                                elseif(strlen($get_vars['search_keyword'])==6) return sprintf('%s%s/%04d/%02d',$path,$get_vars['mid'],substr($get_vars['search_keyword'],0,4),substr($get_vars['search_keyword'],4,2));  
     625                        } 
     626                    case 'act.document_srl.mid' : 
     627                        return sprintf('%s%s/%s/%s',$path,$get_vars['mid'], $get_vars['act'],$get_vars['document_srl']); 
     628                    case 'act.document_srl.mid.page' : 
     629                        return sprintf('%s%s/%s/%s/page/%s',$path,$get_vars['mid'], $get_vars['act'], $get_vars['document_srl'],$get_vars['page']); 
    615630                } 
    616631            } 
     
    641656                    break; 
    642657            } 
    643             return sprintf("%s://%s%s",$use_ssl?'https':'http',$_SERVER['HTTP_HOST'], getScriptPath()); 
     658 
     659            if($use_ssl) return sprintf("%s://%s%s",'https',$_SERVER['HTTP_HOST'], getScriptPath()); 
     660             
     661            return getScriptPath(); 
    644662        } 
    645663