URL重写二级域名的文章
资料参考:http://msdn.microsoft.com/zh-cn/library/ms972974.aspx 1.首先下载URLRewriter.rar,下载之后直接复制到你的网站的bin目录
<configSections> <section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter"/> </configSections> <!--转发规则--> <RewriterConfig> <Rules> <RewriterRule> <LookFor>~/Url.html</LookFor> <SendTo>~/Url.aspx?id=aa</SendTo> </RewriterRule> </Rules> </RewriterConfig>
注意在web.config中把&换为&否则不能执行 同时还要在<system.web>配置节下加
最后配置IIS映射,右击站点-属性-主目录-配置-插入,把复制的文件即C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll, 复制到可执行文件框内,同时去掉确认文件是否存在,确定即可
3.*映射要注意的问题 解决办法: 方法1,把存放图片所在的文件夹转化成一个虚拟目录,在然后移处该虚拟目录*.*的映射,这样一来他的url重写程序就不会去处理图片文件,当然存放别的不需要url重写程序的文件也要象图片文件夹做类似的处理。 4.最后处理回发,即是指当我们在一个经过url重写的页面的提交返回后,一般情况下又返回了真实的路径,而不是咱们处理过的url地址,这种情况就需要咱们在需要处理回发(即提交表单的页面)的页面加上以下代码即可: <script type="text/javascript">try{document.forms[0].action=""}catch(ex){}</script> 放在<form></form>里面 比如http://www.abc.com/photo/50/show_1.html 这个页面是经过url重写之后的,用户留言之后(提交表单)如果不做处理就变成了原始的路径了,如:http://www.abc.com/photo/Detail.aspx?ptid=50&page=1 所以我们要处理回发的情况。
=======================================二级域名====================================== 微软的URLRewrite能够对URL进行重写,但是也只能对域名之后的部分进行重写,而不能对域名进行重写, 如:可将 http://http://www.abc.com//1234/ 重写为 http://www.abc.com/show.aspx?id=1234 但不能将 http://1234.abc.com/ 重写为 http://www.abc.com/show.aspx?id=1234。 1. http://www.abc.com/ 是泛解析的,将*.abc.com做为A记录绑定IP(这是域名空间管理操作) 2. 当前网站为默认网站(即只需要输入IP即可访问),网站的第一个主机头值必须为空,否则会出现错误的请求。 3. 增加*映射(参照上面)
<httpModules>
<add type="URLRewriter.ModuleRewriter, URLRewriter" name="ModuleRewriter" /> </httpModules>
IE地址栏输入http://1234.abc.com/,则实际访问的是http://www.abc.com/URL.aspx?id=1234 |