编辑Global.asax文件并在网站中实现

时间:2017-12-13 10:36:20

标签: asp.net .net global-asax

我运行的网站包含Global.asax文件,App_global.asax.compiled也包含App_global.asax.dll但现在我想编辑或添加一些现有的url重写代码。 但是当我在global.asax文件中执行代码时,它没有采取。

经过大量的谷歌搜索和搜索后,我知道我必须在完成更改后再次编译该全局文件。但我无法做到这一点,因为网站##标题## te是实时的,我没有解决方案。

Global.asax中的现有代码:

 protected void Application_BeginRequest(object sender, EventArgs e)
    {
        HttpContext myContext=HttpContext.Current;

        Regex rewrite_regex = new Regex(@"(.+)\/((.+)\.*)", RegexOptions.IgnoreCase);

       try
       {
              // 'see if we need to rewrite the URL
           Match match_rewrite =rewrite_regex.Match(myContext.Request.Path.ToString());

           string str = match_rewrite.Groups[2].Captures[0].ToString();
           string root = match_rewrite.Groups[0].Captures[0].ToString();
           if (Regex.Match(root, "/News/", RegexOptions.IgnoreCase).Success)
           {           
               myContext.RewritePath("~/Default2.aspx?nid="+str);
           }
           else if (Regex.Match(root, "/Search/", RegexOptions.IgnoreCase).Success)
           {
               myContext.RewritePath("~/Default.aspx?text=" + str);
           }
           else if (Regex.Match(root, "/Find/", RegexOptions.IgnoreCase).Success)
           {
               myContext.RewritePath("~/Default.aspx?text=" + str);
           }

任何帮助都会很棒。

1 个答案:

答案 0 :(得分:0)

由于您没有代码,因此更容易使用IIS redirect rules? 这会将规则添加到您的web.config中。您可以创建多个基于正则表达式的规则来满足您的不同条件

e.g。

<rule name="Redirect from blog">
      <match url="^blog/([_0-9a-z-]+)/([0-9]+)" />
      <action type="Redirect" url="article/{R:2}/{R:1}" redirectType="Found" />
    </rule>