将单个请求重定向到另一个页面,忽略 www 子域名

将单个请求重定向到另一个页面,忽略 www 子域名

我有一个在 IIS 7.5 上运行的网站,该网站会自动从“http://mysite.com/whatever.aspx' 到 'http://www.mysite.com/whatever.aspx

在网站上,有很多流量指向一个旧的 URL,我想将其重定向到首页 index.aspx:'http://mysite.com/foo/bar/index.cgi%something=asdf&somethingelse=qwerty

问题是,无论我怎么尝试,我只能让重定向与 www 子域配合使用。如果我使用不带 www 的 URL,我最终只会到达 'http://www.mysite.com/404.aspx

有什么想法吗?提前感谢大家的帮助!

编辑 3:浏览器缓存重定向响应似乎对我造成了困扰,因此编辑 2 是错误的。请参阅下面的回复。

编辑2:忽略编辑1,它看起来似乎根本不起作用。

编辑:这里有一些进一步的信息:使用本文我已成功重定向至“http://mysite.com/foo/bar/index.cgi' 到 'http://www.mysite.com/index.aspx',但如果我添加查询字符串参数,它仍然会重定向到'http://www.mysite.com/404.aspx

有没有办法捕获对 cgi 文件的所有请求,包括查询字符串参数?

答案1

因此,我设法通过以下方式使其工作:

1)在 IIS 中为应用程序添加子目录 /foo/bar
2)在子目录中添加文件 index.cgi
3)在子目录中创建以下 webconfig:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <httpRedirect enabled="true"  exactDestination="true" httpResponseStatus="Permanent">
      <add wildcard="*.cgi*" destination="http://www.mysite.com/index.aspx" />
    </httpRedirect>
  </system.webServer>
</configuration>

这抓住了全部请求到 index.cgi,但对我来说这有效。我可能只使用我在上面指定的 URL 就可以让它工作,但这不是必需的。

相关内容