当时由于cnblogs.cn这个程序结构相当优秀,所以我更改的并不多,主要有以下几点:
1.基于404错误的URL重写技术。因为有的虚拟主机并不支持URL重写技术,尤其是你要对静态的HTML文件进行URL重写(当然我并没有使用这个技术),可是基本上没有虚拟主机支持对静态的HTML文件进行URL重写(至少我没有用过),于是我想到了一个变通的方法,那就是修改服务器的404错误页面的设置,将该设置指向到一个特定的ASPX文件,再在ASPX文件之中调用cnblogs的URL重写程序。
Error404.aspx的对应类代码:
1
public class Error404 : System.Web.UI.Page
2
}
2
我刚才看了一下,剩下的代码由于大部分摘自cnblogs的源码,而我更改的部分都很小,因此我不在本文之中提供源码,如果确有需要,可以首先去参考cnblogs的源码,也可以发邮件向我索取该部分的源码,我可以直接提供。
总体上来讲,该URL重写机制,通过在Web.Config文件之中添加类似于如下的配置来实现对应的URL重写的功能:
1
<HttpHandler pattern="^/place/cn/([%0-9a-zA-Z/]*).aspx$" type="Step1.UrlRewriter.PageHandlerFactory,Step1.UrlRewriter" handlerType="Redirect" pageLocation="/place/Place.aspx?p=$1" />
2
以上的配置,会将网址/place/cn/aaaaaaa.aspx自动在服务端转向到/place/Place.aspx?p=aaaaaaa2
详细的内容,可能我在后面讲解其他的技术的时候会重新提到。