我有一个在 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 就可以让它工作,但这不是必需的。