我们目前遇到一个问题,即在我们的舞台服务器上,某些网页上存在的链接具有完整的网址而不是相对路径,例如它们可能位于http://stage.host.com/app/webpage1.aspx上,并且可能存在{{}的链接3}}而不是http://www.host.com/app/webpage2.aspx
为了尝试解决这个问题,我们添加了一个响应过滤器来去除锚标记的主机名,以便它们变得相对。虽然这适用于大多数情况,但仍有一些问题,用户重定向到服务器端代码的完整链接,例如Response.Redirect
。
我想让你的家伙了解解决这个问题的最佳方法,我想也许HttpModule
可能会有所帮助?
谢谢,Raj。
答案 0 :(得分:1)
如果您尝试限制任何重定向到其他主机,可以使用:
public class Global : System.Web.HttpApplication
{
//...
protected void Application_EndRequest(object sender, EventArgs e)
{
if (this.Response.StatusCode == 302) this.Response.RedirectLocation = Relativize(this.Response.RedirectLocation);
}
//...
}
或HttpModule
中的几乎相同的代码。
答案 1 :(得分:0)
通常,主机名可在Web应用程序中配置,甚至可以从Web服务器环境自动确定。