我編寫該HTTP模塊和正確添加到它的網站,但它給我這個錯誤,當我運行它:問題在C#.NET Web應用程序重定向
**頁面沒有正確重定向
Firefox已經檢測到服務器重定向此地址的 請求的方式,將永遠不會完成**
using System;
using System.Web;
using System.Net;
using System.Text;
using System.IO;
namespace CommonRewriter
{
public class ParseUrl : IHttpModule
{
public ParseUrl()
{
}
public String ModuleName
{
get { return "CommonRewriter"; }
}
public void Init(HttpApplication application)
{
application.BeginRequest += new EventHandler(application_BeginRequest);
application.EndRequest += new EventHandler(application_EndRequest);
}
private string ParseAndReapply(string textToParse)
{
string final = null;
if (textToParse.Contains(".") && textToParse.Contains("example.com"))
{
string[] splitter = textToParse.Split('.');
if (splitter[0].ToLower() != "www" &&(splitter[2].ToLower()).Contains("blog"))
{
final = ("www.example.com/Blog/?tag=/" + splitter[0]);
}
else { final = textToParse; }
}
else { final = textToParse; }
return final;
}
void application_BeginRequest(object sender, EventArgs e)
{
HttpApplication application = (HttpApplication)sender;
HttpContext context = application.Context;
string req = context.Request.FilePath;
context.Response.Redirect(ParseAndReapply(req));
context.Response.End();
}
void application_EndRequest(object sender, EventArgs e)
{
}
public void Dispose() { }
}
}
感謝您指出。原來它只是'textToParse.Contains(「。」)'我稍後添加了「example.com」部分 – user796762
我正在使用的站點是一個具有ip地址而不是域名的開發站點。即時通訊使用主機文件將IP更改爲可用域。 string req = context.Request.FilePath;'是否可以返回一個用於評估的IP地址而不是文本域名。 – user796762
主機名應該不重要。 Filepath返回URL的文件和路徑部分,不包含主機名或任何查詢字符串值。您的重定向條件觸發的唯一方法是如果您有像「http://somesite.com/example.com/file.aspx?arg=val1&arg2=val2」這樣的URL「 」FilePath將返回「/example.com/file .aspx「。 –