Asp classic 跨域响应。使用URL重写规则和SSL证书重定向

Asp classic 跨域响应。使用URL重写规则和SSL证书重定向,asp-classic,url-rewriting,cross-domain,Asp Classic,Url Rewriting,Cross Domain,我有一个功能完善的URL重写来删除文件扩展名。但是当我使用response.redirect时,URL重写不会发生。奇怪的是,只有当URL使用完整路径而不是相对路径时,才会发生这种情况。例如: response.redirect("http://example.com/page") 给我http://example.com/page.asp 而response.redirect(“/page”)是可以的 URL重写代码: <rule name="rewrite asp"> &l

我有一个功能完善的URL重写来删除文件扩展名。但是当我使用
response.redirect
时,URL重写不会发生。奇怪的是,只有当URL使用完整路径而不是相对路径时,才会发生这种情况。例如:

response.redirect("http://example.com/page")
给我http://example.com/page.asp

response.redirect(“/page”)
是可以的

URL重写代码:

<rule name="rewrite asp">
  <match url="(.*)" />
  <conditions logicalGrouping="MatchAll">
    <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
    <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
    <add input="{REQUEST_FILENAME}" negate="true" pattern="(.*).asp" />
  </conditions>
  <action type="Rewrite" url="{R:1}.asp" />
</rule>


我需要使用完整路径,因为我要从一个域转到另一个域。有什么想法吗?

你可以试试这样的方法:

/redirect?url=<%=Server.URLEncode("http://example.com/page.asp")%>
/redirect?url=
然后在redirect.asp中:

<%sSomeExternalURL = URLDecode(Request.QueryString("url"))%>
<html>
<head>
  <meta http-equiv="refresh" content="0;url=<%=sSomeExternalURL%>">
</head>
<body>
</body>
</html>

<%
Function URLDecode(str) 
    str = Replace(str, "+", " ") 
    For i = 1 To Len(str) 
        sT = Mid(str, i, 1) 
        If sT = "%" Then 
            If i+2 < Len(str) Then 
                sR = sR & _ 
                    Chr(CLng("&H" & Mid(str, i+1, 2))) 
                i = i+2 
            End If 
        Else 
            sR = sR & sT 
        End If 
    Next 
    URLDecode = sR 
End Function
%>


doh,对不起,这是服务器。Transferah当然,是的,我试过了,但没用。最后一个建议是,尝试添加一个查询字符串,例如“response.redirect(”)'这让我感到奇怪。我想它必须在接收端,在那里URL重写没有被触发。我看不到任何关于重写规则的问题的重写规则配置示例,这太奇怪了:/尽管问题没有在我的问题中得到正确的阐述,但你帮助实现了目标。谢谢。你介意详细说明吗?我很高兴我能LD帮助,但我肯定其他人可能想知道解决方案是什么。当然。我没有想到这会有任何效果,但是被重定向的域有SSL证书。因此还有一个重写规则。问题最终通过重定向到<代码>来解决。https://example.com/page。