2

我正在尝试将所有不存在的页面重定向到不同的域,因为我的博客已移至不同的域。

所以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">

关于如何获取 blog/ 下的所有内容并重定向到另一个域的任何想法?

4

4 回答 4

0

URL 重写不允许重写其他域或子域上的路径。您可以在 global.asax 中使用以下代码重定向 url:

void Application_BeginRequest(object sender, EventArgs e)
{
    string path = Request.Path;
    if (path.Contains("blog/"))
    {
        HttpContext.Current.Response.Redirect("http://blog.softwaresynergy.com/blog/");
    }
}
于 2012-09-24T14:29:10.487 回答
0

尝试使用以下重定向规则:

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

把它放在你其他重写规则的顶部,所以它首先被执行,我认为它应该可以工作。

于 2012-09-23T16:26:44.790 回答
0

我以不同的方式进行了更改。将原始站点保留为 php,并使用 php rewrite 进行重定向,效果很好。

在域 new.mydomain 我做了 aspx 站点

不理想,但现在工作。

于 2012-10-02T21:50:51.103 回答
0

使用自定义 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);
于 2012-09-28T18:16:26.380 回答