区分同一网站代码下多站点的静态专题结构
背景:在现有的网站系统下有动态专题和静态专题区分,动态专题没什么可说的,都走同一份代码,而静态专题则会走一些特定的页面。由于网站的代码是适用于多个站点的共通代码,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
作者:KeepMoving
出处:http://www.cnblogs.com/KeepMovingblog/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
出处:http://www.cnblogs.com/KeepMovingblog/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。