|M| 300分 学习URL改写参数出错,和相关知识 谢谢
http://www.cnblogs.com/teddyma/archive/2006/09/11/500790.html
我按照这个做了一个网站
Web.Config
-------------------------------------
<?xml version= "1.0 "?>
<configuration>
<configSections>
<section name= "UrlRewriteRules " type= "NBear.Web.Modules.UrlRewriteRules, NBear.Web "/>
</configSections>
<UrlRewriteRules>
<Rule key= "^/(.+).html " value= "~/default.aspx?id=$1 " />
<Rule key= "^/UrlRewriteSample/sample(.*).aspx " value= "/UrlRewriteSample/Default.aspx?page=$1 " />
<Rule key= "^/UrlRewriteSample/section/(.*).aspx " value= "/UrlRewriteSample/Default.aspx?section=$1 " />
</UrlRewriteRules>
<system.web>
<compilation debug= "true ">
<assemblies/>
</compilation>
<httpModules>
<add type= "NBear.Web.Modules.UrlRewriteModule, NBear.Web " name= "UrlRewriteModule "/>
</httpModules>
</system.web>
</configuration>
---------------------------------------------
在这里面有:
<Rule key= "^/(.+).html " value= "~/default.aspx?id=$1 " /> 改写
然后我在页面中输入:
http://localhost:1708/UrlRewrite/dd.html
本来改写应为
/UrlRewrite/default.aspx?id=dd
但他动是
/UrlRewrite/default.aspx?id=urlrewrite/dd
是哪里出错了
------解决方案--------------------DAY DAY UP
------解决方案--------------------不知道,帮你顶
------解决方案--------------------不是很懂,随便说说,说错勿怪
改成这个试试
<Rule key= "^/UrlRewrite/(.*).html " value= "/UrlRewrite/Default.aspx?id=$1 " />
------解决方案--------------------和楼主一样,学习中...
------解决方案--------------------不知道,帮你顶
------解决方案--------------------还需要在站点配置,添加.html的扩展名
------解决方案--------------------学习!
------解决方案--------------------怎么说呢
楼主应该去看看正则的语法
^/(.+).html 匹配 第一个字符是 /+N个任意字符+.html 这样的字符串
其中的(.+) 表示捕获匹配的 第一个字符是 /+N个任意字符+.html 这样的字符串
中 / 和.html 之间的字符串 也就是你后面的 $1代表的内容了
解释一下:
(.+)的意思是 在前面匹配的字符串
即上面的 第一个字符是 /+N个任意字符+.html 这样的字符串 中
捕获匹配到 .+ 这个正则表示的字符串的匹配项 并放入$0-$9 这个 "匹配 "结果集合中
. 表示的是任意的一个字符 + 表示前面的字符至少出现1次或N次 .+就表示任意字符串
你可以去看看
http://msdn.microsoft.com/library/chs/default.asp?url=/library/CHS/jscript7/html/jsjsgrpregexpsyntax.asp
如果你要捕获
http://localhost:1708/UrlRewrite/dd.html 中的 dd
应该写成
<Rule key= "^/UrlRewrite/(.+).html " value= "/UrlRewrite/Default.aspx?id=$1 " />