我们的项目有分站,分站也需要对url进行重写。
我们主站采用的urlrewriter进行重写。
这个方法还是不错的,只需进行文件的配置即可对url进行重写,伪静态。使用起来真的特别舒服。
具体使用方法可以百度、google 》 urlrewriter的使用
可是这个方法对二级域名,通过我查资料,反正折腾了不少时间。最后我放弃了,因为这个太麻烦了。
我后来看到一个方法可以对url进行重写,我就想到注册模块与程序进行处理,
我项目中为了控制分站,有些差异化的处理放到了global中去,本来要进行重写的页面不多。还要对这些页面进行处理,我直接就在global中写了这些页面的重写。
首先,我先判断是否是经过我的目标链接来了(简单的我直接就简单判断一下,复杂的我用的正则)
例如 www.xxx.com/bbb/ 这样的是我定义的格式 如果来了www.xxx.com/bbbb 这样就不是我要的,我要抛弃它
其次,是我要的 我就要把这个地址获取过来,进行分割。
如上的例子,我直接用简单的字符串分割 以得到我想到的参数 bbb 如果是复杂的当然还得正则了。
最后 把参数获取过来了 该重写真实的地址了
例如我的真实地址是 default.asx 真实的url应该是 default.aspx?id=bbb 那么我就要把bbb这个参数给它程序就是:
Context.RewritePath("/default.aspx?fz=" +获取到的参数变量);
这样就会重写至
default.aspx?id=bbb 这个地址了。也就实现了 我输入www.xxx.com/bbb/ 真正打开的页面是www.xxx.com/default.aspx?id=bbb