IIS中的新重定向格式

IIS中的新重定向格式,iis,vbscript,iis-7.5,Iis,Vbscript,Iis 7.5,几个月前,我注意到我的一些经典ASP应用程序以一种奇怪的方式重定向。 如前所述,文件将从page.asp重定向到default.asp(假设用户已登录-使用cookie),现在,重定向如下所示 domain.com/page.asp,default.asp 这当然会抛出404错误,因为“页面”(page.asp,default.asp)不存在 重定向通常通过使用响应来完成。重定向 我还做了一个测试,看看HTTPS是否在on中,如果不是,还有一个额外的重定向,转发到同一个页面,但在HTTPS中 这

几个月前,我注意到我的一些经典ASP应用程序以一种奇怪的方式重定向。 如前所述,文件将从
page.asp
重定向到
default.asp
(假设用户已登录-使用cookie),现在,重定向如下所示
domain.com/page.asp,default.asp
这当然会抛出404错误,因为“页面”(page.asp,default.asp)不存在

重定向通常通过使用
响应来完成。重定向

我还做了一个测试,看看HTTPS是否在on中,如果不是,还有一个额外的重定向,转发到同一个页面,但在HTTPS中

这是需要进行的新配置,以防止更改此重定向格式吗

谢谢

更新:

if currentUserID = 0 then 
    conn.close
    set conn = nothing
    response.Redirect("default.asp")
end if 
(1)这是我在请求页面上使用的代码,以确保我们有一个有效的cookie:

if currentUserID = 0 then 
    conn.close
    set conn = nothing
    response.Redirect("default.asp")
end if 
(2)我已经通过本地主机进行了检查,正如《战败袋熊》所建议的那样-似乎没有发生重定向。可能是因为SSL没有为此打开

(3)添加屏幕截图:(请参见“请求的URL”一行)


使用可使用模块重写IIS URL

如果我理解正确,可能会对如何强制用户进入SSL通道产生一些混淆,这可能会混淆统计信息

您可以使用IIS中的自定义错误和一段Javascript强制用户从HTTP到HTTPS。这将在您的stat计数器之前触发,因为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 -->

函数重定向到https()
{
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;
}
重定向到https();
您还可以使用“高科技”并安装IIS URL Rewrite,它的功能要大得多,但如果您只需要将用户切换到HTTPS,这就太过分了


如果这是没有用的,让我知道,我会删除答案

没有“新格式”,如果重定向不起作用,或者经典ASP代码中的某些内容发生了更改,或者配置中的IIS URL重写规则导致了问题。禁用任何规则,然后测试重定向。是否使用此格式的
domain.com/default.asp,page.asp
给你敲响了警钟?@Lankymart-你认为OP的服务器可能安装了IIS url重写插件,而OP不知道吗?@VanquishedWombat发生了一些奇怪的事情。只是澄清一下-没有人在服务器上进行更改。不是我(不是服务器人员)也不是主机-因此发生的任何事情都必须是预安装或自动更新/更改的。这就是问题所在。谢谢!激活“Require SSL”选项后,在
http
中浏览站点时,所有页面上都出现此错误
由于出现内部服务器错误,无法显示该页面。
此外,IIS URL重写是否比JS解决方案更好?出于某种原因,我觉得JS可能不是完全可靠的,所以也许IIS解决方案更好?同时也希望确保谷歌将该网站视为SSLyes。使用最初选中的“从静态文件插入内容…”框,该框位于:
C:\Inetpub\vhosts\SITE.COM\httpdocs\HTTPredirect.html
。“尝试返回错误…”复选框未选中您的站点是否有公共URL?你使用的是什么版本的IIS,还是什么版本的Windows?当我去那个网站时,我得到了这样的信息:
文档移动了对象移动了这个文档可能被找到了
,所以有些事情正在进行中。