Intelligencia URLRewriter为不存在或不aspx页面(Intelligenci

2019-09-22 16:04发布

我想重定向所有不存在的页面不同的域,因为我的博客被移动到不同的域。

所以www.mydomain.com/blog/asdf应该重定向到blog.mydomain.com/blog/asdf

使用Intelligencia URLRewriter模块我也可以把博客/但如果我做博客/什么,我收到了404。

即使没有这样一个正则表达式的简单规则,它不会为任何博客文件夹下工作

<rewrite url="~/blog/^" to="http://blog.softwaresynergy.com/blog/" />

我也试过这迫使所有的请求去处理

<modules runAllManagedModulesForAllRequests="true">

如何收拾下博客的一切任何想法/和重定向到其他域?

Answer 1:

试着用以下的重定向规则:

<redirect url="^/blog/(.+)$" to="http://blog.softwaresynergy.com/blog/$1" />

把它放在你的其他重写规则上面,所以它最先被执行,我认为它应该工作。



Answer 2:

URL重写不允许改写其他域或子路径。 您可以使用在Global.asax中的代码重新定向的网址:

void Application_BeginRequest(object sender, EventArgs e)
{
    string path = Request.Path;
    if (path.Contains("blog/"))
    {
        HttpContext.Current.Response.Redirect("http://blog.softwaresynergy.com/blog/");
    }
}


Answer 3:

使用自定义的404页。

<system.webServer>
    <httpErrors existingResponse="Replace" errorMode="Custom">
      <remove statusCode="404"/>
      <error statusCode="404" path="/Custom404.aspx" responseMode="Redirect"  />

<customErrors mode="On">
            <error statusCode="404" redirect="/custom404.aspx" />

在custom404页面里面我把代码做我的重定向。 获取引起错误很可能是一个组合的路径...

Request.QueryString("aspxerrorpath");
Request.UrlReferrer;

一旦我有他们试图访问的路径只是做一个重定向。

Response.Redirect(NEW_SITE + PATH, true);


Answer 4:

我也以不同的方式的变化。 离开原始站点的PHP和使用PHP重写的正常工作做了重定向。

在域new.mydomain我做的ASPX网站

不理想,但现在的工作。



文章来源: Intelligencia URLRewriter for non existent or non aspx pages