• asp.net 用伪静态修改webconfig配置文件 .


        使用rewrite在iis上设置规则来实现伪静态,这样在vs中开发的时候将无法调试,必须要是用iis发布才不会造成找不到文件的错误,当然,肯定还有其他的方法来实现伪静态的,不用再iis中设置任何的东西,只需要一个。net的组件和设置一下webconfig文件就ok了,来看一下,这东西,我用的次数很少,每次用都怕忘记,所以记录下来,下次忘记的话也不用Google啦

          这回的准备工作,你必须去网上download一个URLRewriter.dll组件了,网上貌似有这个类库的源代码,当然里面也有编译好的dll文件,只需要把dll文件coty到自己站点的Bin下面,然后在网站上右键,添加引用,浏览选择这个dll文件即可。

         下面就需要在webconfig里面配置一番了

         1、在Web.Config的<system.web>和</system.web>添加以下节点:
        <httpModules> 
          <add type="URLRewriter.ModuleRewriter, URLRewriter" name="ModuleRewriter" /> 
        </httpModules> 

        2、在Web.Config的<configuration>和</configuration>添加以下节点:

    
    <configSections>  
      <section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" />  
    </configSections>  
      
     <RewriterConfig>
      <Rules>
       <RewriterRule>
        <LookFor>~/Default/.html</LookFor>
        <SendTo>~/Default.aspx</SendTo>
       </RewriterRule>
       <RewriterRule>
        <LookFor>~/Detial_([0-9]*)/.html</LookFor>
        <SendTo>~/Detial.aspx?Id=$1</SendTo>
       </RewriterRule>
       <RewriterRule>
        <LookFor>~/List_p([0-9]*)/.html</LookFor>
        <SendTo>~/List.aspx?page=$1</SendTo>
       </RewriterRule>
       <RewriterRule>
        <LookFor>~/Double_t([0-9]*)_p([0-9]*)/.html</LookFor>
        <SendTo><!--[CDATA[~/Double.aspx?type=$1&page=$2]]--></SendTo>
       </RewriterRule>
       <RewriterRule>
        <LookFor>~/About_(.*)/.html</LookFor>
        <SendTo>~/About.aspx?title=$1</SendTo>
       </RewriterRule>
      </Rules>
     </RewriterConfig>
    

    设置完以上两个步骤,就基本可以运行了,其中<RewriterRule/>标签里面就是重写的一个模块,<LookFor/>里面的是重写后的地址,而<SendTo/>则是原地址。大家应该注意到了我写了2组<RewriterRule/>,其中第一组的是给单参数的地址用的,而另一组是给多参数动态文件用的。

       相信大家如果用过在iis里面配置伪静态规则的话,那在webconfig里面配置规则自然不在话下,如果不会的话,就去找一些正则表达式的书看一下,不需要很精通就行

      当然此方法有一些注意事项:
    1.不能使用Windows身份验证用户权限. 应使用Form验证,在web.config配置为:<authentication mode="Forms" />
    2.使用Request.ServerVariables["script_name"]获得的路径仍然是:ShowPlay.asp?vid=1
    3.被重写的地址如果回发,重写将失效 显示的地址将是ShowPlay.asp?vid=1
    4. 后缀名必须为.aspx.如果是其他自定义后缀名,如.net  请在iis将.net映射到aspnet_isapi.dll.

    五个页面

    About.aspx

        <form id="form1" runat="server">
            <div>
        这是Aboutl页,url是About.aspx还是About.html?<br/>
        
        <br/>
        <br/>
        <a href="Default.html" mce_href="Default.html">主页</a>
        <br />
        <br />
        <a href ="List_p1.html">List页传page参数</a>
        <br />
        <br />
        <a href ="Detial_1.html">Detial页传值Id参数</a>
            <br />
        <br />
        <a href ="About_jianjie.html">About页传值title参数</a>
           <br />
        <br />
        <a href ="Double_t1_p1.html">Double页传值type和page参数</a>
             <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
        </div>
        </form>
    

    cs代码:

    //About页面
    public partial class About : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            string title = Request["title"].ToString();
            TextBox1.Text = "name为" + title;
        }
    }
    //Detial页面
    public partial class Detial : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            string Id = Request["Id"].ToString();
            TextBox1.Text = "Id号为" + Id;
        }
    }
    //Double.aspx页面
    public partial class Double : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            string type = Request["type"].ToString();
            string page = Request["page"].ToString();
            TextBox1.Text = "type为:" + type + "page为" + page;
        }
    }
    //List.aspx页面
    public partial class List : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            string page = Request["page"].ToString();
            TextBox1.Text = "页数为" + page;
        }
    }
    
  • 相关阅读:
    2021-06-10 Summary: 阶段总结
    java中有符号和无符号数据类型发生转换
    关于数组和集合的冒泡排序中容易出现的IndexOutOfBoundsException
    Intellij IDEA打开多项目窗口
    使用Idea从github上获取项目
    用Intellij Idea从Github上获取代码
    Python-列表常用操作方法
    Python-字符串常用操作方法
    Python-不可变对象和可变对象的理解
    Python-内置数据类型
  • 原文地址:https://www.cnblogs.com/Fooo/p/2180627.html
Copyright © 2020-2023  润新知