区分同一网站代码下多站点的静态专题结构

背景:在现有的网站系统下有动态专题和静态专题区分,动态专题没什么可说的,都走同一份代码,而静态专题则会走一些特定的页面。由于网站的代码是适用于多个站点的共通代码,httpd.ini文件中又想以统一的地址转向来匹配URL,每个不同域名的站点又都有静态专题。
问题:如何实现上述的需求?使静态专题不影响动态专题代码的前提下,正常显示。
 
办法:
首先是区分开不同域名的站点,对策是在httpd.ini中加上
RewriteRule           /zt/(\w+)/            /handler/zt.ashx?zt=$1 [I,L]
有些情况下需要注意该条语句的位置
 
接着是zt.ashx了,部分代码如下:
    public void ProcessRequest(HttpContext context)
    {
        string para = Utils .GetParam("zt");
 
        if (para.StartsWith("all_" ))
        {
            UrlRewrite.Transfer("~/l_zt.aspx?cate=" + para.Remove(0, 4));
            return;
        }
 
        if (File .Exists(context.Server.MapPath("~/zt/zhandian1/" + para + "/" + para + ".aspx" )))
        {
            if (Utils .GetID() == 1)
            {
                UrlRewrite.Transfer("~/zt/zhandian1/" + para + "/" + para + ".aspx");
            }
            else
            {
                context.Response.Redirect( "http://www.xxx.com/404/" );
            }
            return;
        }
        else if (File.Exists(context.Server.MapPath( "~/zt/zhandian2/" + para + "/" + para + ".aspx")))
        {
            if (Utils .GetID() == 2)
            {
                UrlRewrite.Transfer("~/zt/zhandian2/" + para + "/" + para + ".aspx");
            }
            else
            {
                context.Response.Redirect( "http://www.xxx.com/404/" );
            }
            return;
        }
        else
        {
            UrlRewrite.Transfer("~/t_zt.aspx?zt=" + para);
            return;
        }
    }
 
最后,给静态专题建立相应目录,代码中也可看出专题的文件结构是有限定的。结构如下:
--zt
-----zhandian1
-----------------专题1文件夹 
--------------------------------- css文件夹
----------------------------------image文件夹         (css,image,js等资源文件都放在同一专题文件夹下,易于管理和维护)
----------------------------------js文件夹
----------------------------------专题页面
-----------------专题2文件夹
-----zhandian2
 
posted @ 2012-09-13 21:48  永动机  阅读(284)  评论(0)    收藏  举报