几个月前,我注意到我的一些经典ASP应用程序以一种奇怪的方式重定向。
以前文件将从page.asp
重定向到default.asp
(假设用户已登录 - 使用cookie),现在,重定向看起来像
domain.com/page.asp,default.asp
这当然会抛出404错误,因为“page”(page.asp,default.asp)不存在。
重定向通常使用Response.Redirect
。
我还有一个测试,看看HTTPS是否已启用 - 如果没有,还有其他重定向,转发到同一页面,但是在HTTPS中。
这是否需要执行新配置以防止更改此重定向格式?
由于
更新
(1)这是我在请求的网页上使用的代码,以确保我们有一个有效的Cookie:
if currentUserID = 0 then
conn.close
set conn = nothing
response.Redirect("default.asp")
end if
(2)我已经按照Vanquished Wombat的建议通过localhost 进行了检查 - 似乎没有发生重定向。也许是因为没有SSL?
(3)添加屏幕截图(请参阅“请求的网址”行)
答案 0 :(得分:0)
使用可以使用模块进行IIS URL重写 https://www.iis.net/downloads/microsoft/url-rewrite
答案 1 :(得分:0)
如果我理解正确,可能会有一些混淆,如何强迫用户进入SSL通道,这可能会使统计数据混乱。
您可以使用IIS中的自定义错误和一段Javascript强制用户从HTTP到HTTPS。这将在您的统计计数器之前触发,因为IIS将拒绝用户请求并发回403.4自定义错误文件,而该文件又会将它们还原为相同的基本URL,但是在HTTPS协议上。
将以下脚本保存为网站的根文件夹中的HTTPredirect.html,并按照三步说明进行操作。
<!-- beginning of HttpRedirect.htm file -->
<!--
'-----------------------------------------------------------------------
' To force user to https port.
'
' To make this work:
' 1. Put this html file in root of website in a file named HTTPredirect.html.
' 2. Go to IIS admin, click on the web site and open Error pages.
' Set 403.4 error to static file with path = HTTPredirect.html
' 3. Still in IIS admin go to SSL setting and tick 'Require SSL' checkbox. Click Apply.
' Now it will work - redirecting all http urls to https.
'----------------------------------------------------------------
'
-->
<script type="text/javascript">
function redirectToHttps()
{
var httpURL = window.location.hostname + window.location.pathname;
var httpsURL = "https://" + httpURL + window.location.hash;
var restOfUrl = window.location.href.substr(5);
window.location = "https:" + restOfUrl;
}
redirectToHttps();
</script>
<!-- end of HttpRedirect.htm file -->
你也可以去'高科技'并安装IIS URL Rewrite,它具有更多的功能,但如果你只需要将用户切换到HTTPS就太过分了。
如果这没用,请告诉我,我会删除答案。