使用urlrewriter.net写二级域名的注意事项
最近做一个火车时刻表查询网站时,用到了二级域名和URl重写,选用了urlrewriter.net 现把遇到的问题记录一下。
1。 如果你只用urlrewriter.net来重写URL,并且重写为aspx文件的话(主要把参数转化为目录),则IIS不需要任何配置,并且在.net里面也不用重写Form,或者增加app_browse文件夹。
2。如果要重写为htm之类的url,则需要在IIS上配置一个.*的映射,等于把所有的请求都交给Asp.net来处理,这时候尤其需要注意的是:你原来配置的IIS默认文档失效,所以你需要在webconfig中重写配置以下,配置的方法有2种
1。 如果你只用urlrewriter.net来重写URL,并且重写为aspx文件的话(主要把参数转化为目录),则IIS不需要任何配置,并且在.net里面也不用重写Form,或者增加app_browse文件夹。
2。如果要重写为htm之类的url,则需要在IIS上配置一个.*的映射,等于把所有的请求都交给Asp.net来处理,这时候尤其需要注意的是:你原来配置的IIS默认文档失效,所以你需要在webconfig中重写配置以下,配置的方法有2种
<if url="^(.*)/(\?.+)?$"> <rewrite exists="$1/default.aspx" to="$1/default.aspx$2" /> <rewrite exists="$1/index.aspx" to="$1/index.aspx$2" /> <rewrite exists="$1/index.html" to="$1/index.html$2" /></if>
或<default-documents> <document>default.aspx</document> <document>index.aspx</document></default-documents>
3。二级域名的配置方法 ,以下把g.cha138.com 转到 www.cha138.com/g<if header="Host" match="g.cha138.com" url="^/">
<rewrite url="^/?$" to="/g/" processing="stop" />
</if>
注意二级域名需要配置.*映射,并且需要把二级域名配置到网站里面的主机头里面,如果需要实现任意二级域名,则需要做泛域名解析。
<rewrite url="^/?$" to="/g/" processing="stop" />
</if>