포럼

XE의 경우 코어에서 정한 Rewrite rule을 따르고 있습니다.

/document_srl/
/mid/document_srl/
/vid/document_srl/
/vid/mid/document_srl/

하지만 사이트를 만들다보면 이러한 룰은 한계가 있습니다.
주소도 길어지고 외우기 힘들고 지저분해보입니다.

모듈에서 Custom rewrite rule을 지원한다면 좀 더 간결한 주소를 만들 수 있겠죠.

RewriteEngine 클래스 레퍼런스
  • RewriteEngine::set();
  • RewriteEngine::unset();
  • RewrtieEngine::getRules();
  • RewriteEngine::setTargetModule();
  • RewriteEngine::addTargetModule();
  • RewriteEngine::getTargetModules();

<?php
class RewriteEngine {
    var $rules;

    /**
     * @brief constructor
     **/
    function RewriteEngine() {
    }

    function set($regex, $rewrite, $target_module) {
        if(!isset($this->rules[$regex])) {
            $rule = new stdClass;
            $rule->regx = $regex;
            $rule->rewrite = $rewrite;
            $rule->target_module = $target_module;
            $this->rules[$regex][] = $rule;
        }
    }

    function unset($regex, $index = null) {
        if($index) {
            unset($this->rules[$regex][$index]);
        } else {
            unset($this->rules[$regex]);
        }
    }

    function setTargetModule($regex, $target_module) {
        $this->rules[$regex]->target_module = $target_module;
    }

    function getRules() {
        return $this->rules;
    }

    function getTargetModules($regex) {
        return $this->rules[$regex]->target_module;
    }
}
?>

before_module_init 혹은 before_module_proc 시점에서 룰을 추가하거나 삭제할 수도 있고요.

<?php
if($called_position == 'before_module_init') {
    RewriteEngine::set('[a-zA-Z0-9_+]/category/[0-9+]', 'index.php?mid=$1&category_srl=$2', 'board');
}
?>

conf/module.xml 파일에 룰을 선언할 수 있습니다.

<module>
...
<rewriteRules>
    <rule regex="[a-zA-Z0-9_+]/category/[0-9+]" rewrite="index.php?mid=$1&category_srl=$2" module="board" />
    <rule regex="[a-zA-Z0-9_+]/act/write/" rewrite="index.php?mid=$1&act=dispBoardWrite" module="board" />
    <rule regex="[a-zA-Z0-9_+]/act/modify/[0-9+]" rewrite="index.php?mid=$1&document_srl=$2&act=dispBoardWrite" module="board" />
    <rule regex="[a-zA-Z0-9_+]/act/delete/[0-9+]" rewrite="index.php?mid=$1&document_srl=$2&act=dispBoardDelete" module="board" />
</rewriteRules>
...
</module>

module="board"인 경우 board 모듈에서만 동작하는 룰임.

잊어먹지 않기 위해 적어놓는 글이라 새로운 생각이 떠오르면 언제든지 바뀔 수 있습니다.
글쓴이 제목 최종 글
또별 로그인 선택 기능에 대하여 [3] 2015.06.23 by BJ람보
설탕&커피 단축키 애드온이예요! [76] file 2015.07.29 by Luacast
inJin 아무 대가없이 뭔가를 배포한다는게.. [19] 2015.06.23 by 파워뭉치
가을풍경 대구에 사시는 분중에 XE 강의 해주실 분 없으신가요? [1] 2015.06.22 by Luacast
karutian 레이아웃 제작을 또 시작해버렸는데... [7] file 2015.06.21 by inJin
BJ람보 이제 XE3개발에 따라 슬슬 준비해야할 것. [22] 2020.03.14 by sol
AElsE- 에디터 말인데요. [2] 2015.06.19 by 기진곰
토링23 xe2 가1.5~1.8버전까지인가여? [4] 2015.06.19 by karutian
엑스이짱짱 클라우드 플레어 사용 후기 [8] file 2015.06.19 by Luatic™
kdp 자연어 해석 모듈(Function)에 대해서 조언부탁드립니다. [3] 2015.06.18 by kdp
피씨토머 기분이 좋군요. [14] file 2015.06.18 by 피씨토머
파이델 베스트 글, 댓글 위젯... [5] 2015.06.17 by socialskyo
파이델 해시태그 에드온... (등록완료) [45] 2015.06.16 by 몽실아빠
가브리엘조 여러분이 커뮤니티를 운영하는 이유는 무엇인가요? [9] 2015.06.16 by Luacast
xe좋아용 XE엔 zumsim.com,jaema.net 와같은 재능마켓 사이트 없나요?  
AJKJ 무료 SSL SAN 인증서 정보 - Wosign [6] file 2015.06.16 by misol
피씨토머 새로 리뉴얼 해봤네요~ [10] file 2015.06.16 by 피씨토머
delphiXE2 연말에는 PHP 7로.. [3] 2015.06.16 by 하늘희
로뎀나무57d9f 대한민국 대표 CMS인 XE의 완성도를 높이기 위해 마이너한 부분도 보완되었으면... [4] file 2015.06.15 by 로뎀나무57d9f
기진곰 PHP 7.0 알파버전 성능 ㅎㄷㄷ [11] 2015.06.15 by 착한악마