日期:2014-05-17  浏览次数:20443 次

关于url重写以及电子商务开发实战这本书
我现在做到第七章
前面的部分还算顺风顺水
第七章的url重写遇到了一个问题
我按照书本上得进行配置 从官网上面下了urlrewriter.net这个东西
主要配置了下面几个东西
<httpModules>
<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
  <add type="Intelligencia.UrlRewriter.RewriterHttpModule,Intelligencia.UrlRewriter" name="UrlRewriter" />
  </httpModules>
<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
<modules>
  <add name="UrlRewriter" type="Intelligencia.UrlRewriter.RewriterHttpModule" />
  <remove name="ScriptModule"/>
<add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</modules>
</system.webServer>
然后上面引入部分完毕
接着是那个正则表达式匹配url,然后进行重写的部分
<rewriter>
  <!-- Rewrite department pages -->
  <rewrite url="^.*-d([0-9]+)/?$" to="~/Catalog.aspx?DepartmentID=$1" processing="stop" />
  <rewrite url="^.*-d([0-9]+)/page-([0-9]+)/?$" to="~/Catalog.aspx?DepartmentID=$1&amp;Page=$2" processing="stop" />

  <!-- Rewrite category pages -->
  <rewrite url="^.*-d([0-9]+)/.*-c([0-9]+)/?$" to="~/Catalog.aspx?DepartmentId=$1&amp;CategoryId=$2" processing="stop" />
  <rewrite url="^.*-d([0-9]+)/.*-c([0-9]+)/page-([0-9]+)/?$" to="~/Catalog.aspx?DepartmentId=$1&amp;CategoryId=$2&amp;Page=$3" processing="stop" />

  <!-- Rewrite product details pages -->
  <rewrite url="^.*-p([0-9]+)/?$" to="~/Product.aspx?ProductId=$1" processing="stop" />
  </rewriter>
我本来是使用一个比较简单的链接
就是只配置了
<rewriter>
  <rewrite url="一个很简单的链接" to = "也是一个简单的链接"/>
</rewirter>
上面的成功了 但是换成那些包含正则表示的就出现错误404 资源部存在
请大家帮帮忙,可能描述的不清楚 麻烦大家仔细看看吧 ,现在学到哪个地方卡主了
后面用正则表达式生成链接也没办法做下去,跪拜谢谢大家

------解决方案--------------------
帮顶一下
------解决方案--------------------
URL重写
------解决方案--------------------
ASP.NET URL Rewrite. URL重写
URL 重写是截取传入 Web 请求并自动将请求重定向到其他 URL 的过程。
比如浏览器发来请求hostname/101.aspx ,服务器自动将这个请求中定向为http://hostname/list.aspx?id=101。

url重写的优点在于:
缩短url,隐藏实际路径提高安全性
易于用户记忆和键入。
易于被搜索引擎收录

二 实现url重写的基本方法
下载MS的URLRewriter.dll,放到你的web程序的bin下
下载地址1:http://www.rickel.cn/uploads/DevTools/MSDNURLRewriting.msi
下载地址2:download.microsoft.com/download/0/4/6/0463611e-a3f9-490d-a08c-877a83b797cf/MSDNURLRewriting.msi

下载完成后,在web.config里设置如下:
<?xml version="1.0" encoding="utf-8" ?>
<!--overred-->
<configuration>
<configSections>
<section name="RewriterConfig"type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" />
</configSections>
<RewriterConfig>
<Rules>
<RewriterRule>
<LookFor>~/d(\d+)\.aspx</LookFor>
<SendTo>~/default.aspx?id=$1</SendTo>
</RewriterRule>
</Rules>
</RewriterConfig>
<system.web>
<httpHandlers>