Я пытаюсь перенаправить свой старый блог с печатной машинкой на мой новый блог (постоянное перенаправление 301), который работает с WordPress. Новый блог также будет на новом сервере.
старый блог имел следующую структуру:
http://subdomain.domain.com/weblog/year/month/what-ever-article.html
Новый блог выглядит так:
http://www.domain.com/Blog/index.php/year/month/what-ever-article.html
Я использую обработчик http, который нашел в сети и пытался с ним работать:
public class MyHttpModule :IHttpModule
{
public MyHttpModule()
{
//
// TODO: Add constructor logic here
//
}
#region IHttpModule Members
public void Dispose()
{
}
public void Init(HttpApplication context)
{
context.BeginRequest += new EventHandler(context_BeginRequest);
}
void context_BeginRequest(object sender, EventArgs e)
{
string oldURL = System.Web.HttpContext.Current.Request.Url.ToString();
string newURL = String.Empty;
//oldURL =
if (oldURL.ToString().ToLower().IndexOf("articles") >= 0 || System.Web.HttpContext.Current.Request.Url.ToString().ToLower().IndexOf("weblog") >= 0)
{
newURL = oldURL.Replace("subdomain.domain.com/weblog", "www.domain.com/Blog/index.php");
if (newURL.ToLower().Contains("subdomain"))
{
newURL = "http://www.domain.com/Blog";
}
}
else
{
newURL = "http://www.domain.com/Blog";
}
System.Web.HttpContext.Current.Response.Clear();
System.Web.HttpContext.Current.Response.StatusCode = 301;
System.Web.HttpContext.Current.Response.AddHeader("Location", newURL);
System.Web.HttpContext.Current.Response.End();
}
#endregion
}
Чтобы использовать этот код, я помещаю обработчик в web.config
<httpModules>
<add name="MyHttpModule" type="MyHttpModule, App_Code"/>
</httpModules>
Проблема, с которой я столкнулся, заключается в том, что когда я хочу перенаправить с http://subdomain.domain.com/weblog/year/month/what-ever-article.html,, появляется сообщение об ошибке, что папка не существует.
Есть ли способ изменить мой скрипт или добавить перехват всех в web.config, который пересылает URL моего скрипта?
Когда я использую "http://subdomain.domain.com/weblog/year/month/what-ever-article.html" в строке oldURL, перенаправление работает нормально ... поэтому у меня должны быть неправильные настройки IIS или web.config.
Заранее спасибо,
Patrick