首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

|M| 300分 学习URL改写参数出错,和相关知识 多谢

2012-02-04 
|M| 300分 学习URL改写参数出错,和相关知识 谢谢http://www.cnblogs.com/teddyma/archive/2006/09/11/5007

|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>         &nbsp;&nbsp;
              <Rule   key= "^/(.+).html "   value= "~/default.aspx?id=$1 "   />
        &nbsp;&nbsp;   <Rule   key= "^/UrlRewriteSample/sample(.*).aspx "   value= "/UrlRewriteSample/Default.aspx?page=$1 "   />
        &nbsp;&nbsp;   <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 " />


[解决办法]
呵呵!学习,帮你顶

[解决办法]
LZ还没有做出咯?帮你顶
[解决办法]
<Rule key= "^/(.*).html " value= "/Default.aspx?id=$1 " />
*换成+
[解决办法]

[解决办法]
这个问题的关键是正则,
[解决办法]
学习中!up!
[解决办法]
<Rule key= "^/(.+).html " value= "~/default.aspx?id=$1 " />


-------->


<Rule key= "^/UrlRewrite/(.+).html " value= "~/default.aspx?id=$1 " />
[解决办法]

http://www.51aspx.com/S/urlrewrite.aspx
[解决办法]
帮顶
[解决办法]
这个问题好好像已经解决了?怎么又翻了出来?

热点排行