规则引擎介绍

MRCMS系统中内置的规则引擎并不是有决策功能的规则引擎,本规则引擎主要应用于URL地址重写,达到页面静态地址的目的。页面静态化对于搜索引擎更友好能让页面收录更快。

规则引擎应用

实际应用在MRCMS的URL优化功能上。

规则引擎原理

原理很简单,URL规则 重写URL地址是采用正则表达式的方式来做的,只要通过设置规则参数和url规则,下面这段地址是原生的访问路径,不可否认参数化的地址很丑陋。

/cms?p=index&type=template&date=20130405&id=1

URL规则引擎配置如下后

/{channel}/{type}/{date}/{id}.html

通过编码可以得到:

/index/template/20130405/1.html

当然 也可以通过 解码 得到原始的URL地址,通过编码与解码过程可以达到动态配置URL地址的目的,做页面静态化也不用担心参数问题。

规则代码例子

        URLRewrite re = new URLRewrite();
        // 设置规则参数
        re.ruleParameter.put("{channel}", new Parameter("p","{channel}","([a-zA-Z_0-9]+)"));
        re.ruleParameter.put("{type}", new Parameter("type","{type}","([a-zA-Z_0-9]+)"));
        re.ruleParameter.put("{id}", new Parameter("id","{id}","([0-9]+)"));


        // 初始化两个规则
        re.putRule("列表","{channel}.html");
        re.putRule("内容","{channel}/{type}/cms-thread-{id}.html");

        // 文章类型的地址
        String url ="p=index&type=article&id=1";
        System.out.println("访问的地址:"+url);
        System.out.println("-----------------------");
        String gourl = re.encoder(url);
        System.out.println("URL编码:"+gourl);
        gourl = re.decoder(gourl);
        System.out.println("URL解码:"+gourl);

        System.out.println("==========================");

        // 栏目类型的地址
        url ="p=about";
        System.out.println("访问的地址:"+url);
        System.out.println("-----------------------");
        gourl = re.encoder(url);
        System.out.println("URL编码:"+gourl);
        gourl = re.decoder(gourl);
        System.out.println("URL解码:"+gourl);

results matching ""

    No results matching ""