IIS

时间:2017-11-19 09:36:48

标签: iis vbscript iis-7.5

几个月前,我注意到我的一些经典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)添加屏幕截图(请参阅“请求的网址”行)

enter image description here

2 个答案:

答案 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就太过分了。

如果这没用,请告诉我,我会删除答案。