asp.net项目怎样将www.xxx.com/xxxx/xx.aspx  重写成www.xxx.com/xx.aspx  这样啊?

解决方案 »

  1.   

    上谷歌搜索  asp.net 伪静态重写 资料多了个去 就引用 dll 再注意配置web.config就好了
      

  2.   

    看你是.net什么版本,要是3.5以上,直接routetable.
    3.5以下用rewriter或者什么其他的组件
      

  3.   

    用urlrewriter能轻松实现你的要求。
    微软官方的urlrewriter下载地址:
    http://download.microsoft.com/download/0/4/6/0463611e-a3f9-490d-a08c-877a83b797cf/MSDNURLRewriting.msi
      

  4.   

    http://topic.csdn.net/u/20101130/21/e083e1db-741d-4d71-b4ec-991fa65eaaac.html
      

  5.   

    http://blog.csdn.net/fengyarongaa/article/details/6583288
      

  6.   

    要求:
                  重写前:http://localhost:13275/Default.aspx?username=wilson
                  重写后:http://localhost:13275/wilson
     
    第一步:下载相关DLL(ActionlessForm.dll和UrlRewriter.dll)
                               下载链接一:   http://download.csdn.net/detail/porschev/3704868
                               下载链接二:   http://files.cnblogs.com/zhongweiv/Lib.rar
     
    第二步:VS2010创建测试网站应用程序,并添加以上DLL的引用
                             PS:   操作步骤省略,我想都会
                                                  
     
    第三步:在项目中添加asp.net文件(App_Browsers)
              App_Browsers这个我们比较少用
          
              App_Browsers文件夹包含.browser文件,.browser文件是XML文件,可以标识向应用程序发出请求的浏览器,并理解这些浏览器的功能。
              在C:\Windows\Microsoft.NET\ Framework\v2.0.50727\CONFIG\Browsers中有一个可全局访问的.browser文件列表。另外,如果要
              修改这些默认的浏览器定义文件,只需将Browsers文件夹中的对应.browser文件复制到应用程序的\App_Browsers文件夹,修改其定义即可。
     
              如果对这些Asp.Net文件夹了解不多可以看看这篇文章,相信很有帮助
              http://blog.csdn.net/icecityman/article/details/4748018
                
                            
              1.选择项目--->右键添加--->添加asp.net文件夹--->App_Browsers
              2.在App_Browsers下创建Form.browser文件
     
                <browsers>
                       <browser refID="Default">
                            <controlAdapters>
                                  <adapter controlType="System.Web.UI.HtmlControls.HtmlForm"
                                         adapterType="URLRewriter.Form.FormRewriterControlAdapter"/>
                             </controlAdapters>
                       </browser>
                </browsers>
    复制代码
               PS:  refID:不可以与ID和arentID同时存在
                    
     
     
    第四步:配置web.config
    1 .在configuration节点下添加
                 <configSections>
                         <section name="CustomConfiguration" type="URLRewriter.Config.UrlsSection, URLRewriter"/>
                 </configSections>
      
                 <CustomConfiguration>
                        <urls>
                             <!--([\w]+)表示,1到n个字母或数字或下划线或汉字组成-->
                             <add virtualUrl="~/([\w]+)*" destinationUrl="~/Default.aspx?username=$1"/>
                        </urls>
                 </CustomConfiguration>
    复制代码
     
    PS:正则的部分,要根据不同的规则去写,如果有不会的,可以留下详细规则,我看到后会尽快回复!! 
     
     
     
      2.在System.web节点下添加
                 <httpModules>
                        <add type="URLRewriter.RewriterModule, URLRewriter" name="RewriterModule"/>
                 </httpModules>
    复制代码
     
     解释一下httpModules的的Add节点属性:
      type:HttpModule的标识号和类库名称
      name:取一个较为友好的名称
     
    用MSDN的截图来解释一下
     
          
     
     
    第五步:测式
                      1.在项目Default.aspx.cs文件Load事件中加入           
     
     
                if (!IsPostBack)
                {
                    StringBuilder sb = new StringBuilder();
                    sb.Append("当前所在位置:Default.aspx<br/>");
                    if (!string.IsNullOrEmpty(Request.Params["username"]))
                    {
                        sb.Append("所接收到的参数username:" + Request.Params["username"]);  
                    }
                    Response.Write(sb.ToString());
                }
    复制代码
                     
                    这里的测试主要是测试直接用重写后规则访问,看是否访问成功,并测试是否能够接收到username参数 
                    还有输入重写前的地址,是否能访问成功
                       
     
                   
                     测试一:找开----->http://localhost:13275/Default.aspx   
                                     结果(aspx页输出)------>当前所在位置:Default.aspx 
                          
                    
                     测试二:找开----->http://localhost:13275/wilson
                                     结果(aspx页输出)------>当前所在位置:Default.aspx
                                                       所接收到的参数username:wilson 
    第六步:在IIS7.5里配置
              完成前五步后,直接运行VS可以重写成功,但发布在IIS中时就会有相应的错误,这样需要配置一下IIS,详情请看下面博客地址
              http://www.cnblogs.com/zhongweiv/archive/2011/10/29/UrlRewriter_IIS.html
     
     
    源码下载地址一:http://download.csdn.net/detail/porschev/3705332
    源码下载地址二:http://files.cnblogs.com/zhongweiv/UrlRewriterDemo.rar
    接上一篇  .NET4.0下网站应用程序用UrlRewriter.dll重写无后缀路径在IIS中新建网站(端口号8111)
          直接运行http://localhost:8111/
        错误截图 配置方法:
     
     
    二、添加通配符脚本映射,选择:C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll
     三、找到和网站相对的连接池,选择framework 4.0  经典模式
     
     
     四、选择应用程序连接池,高级设置,启用32位应用程序,设为true