我遇到了在一个VS解决方案中从一个asp网站重定向到另一个网站的问题。 我已经设置了如下虚拟目录: C:\ WebSites \ Website1 - / Website1 C:\ WebSites \ Website2 - / Website2 我的首发网站是Website1。我想将用户重定向到Website2。我使用Response.Redirect(“/ Website2 / Default.aspx”)并得到404错误。 我究竟做错了什么? 任何建议都非常感谢! 提前谢谢。
答案 0 :(得分:1)
让我们说当前页面是
http://localhost/Website1/Default.aspx,
如果你像这样进行重定向
Response.Redirect("/Website2/Default.aspx")
在那里,您重定向的URL是
http://localhost/Website1/WebSite2/Default.aspx
不存在。
您必须重定向到完整的网址而不是相对网址。
像是一样的东西 Response.Redirect(“http://localhost/Website2/Default.aspx”)
希望它有助于
答案 1 :(得分:1)
您始终可以从HttpRequest.Url或HttpRequest.ServerVariables个对象中选择服务器名称。
Response.Redirect(string.Format("http://{0}/WebSite2/default.aspx",
Request.Url.Host));
或者
Response.Redirect(string.Format("http://{0}/WebSite2/default.aspx",
Request.ServerVariables["HTTP_HOST"]));
这将为您节省硬编码重定向中的服务器名称。
答案 2 :(得分:0)
当您有两个虚拟目录时,如果它们被配置为自己的应用程序,那么它们的各个根被视为根目录,您将不得不重定向到完整的URL。