我运行的网站包含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);
}
任何帮助都会很棒。
答案 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>