在 .NET 网站上,如果有人尝试通过 https 访问 html 页面,将 html 页面重定向到 http 的最佳方法是什么?
我正在使用 Global.asax 重定向 aspx 页面,但是它没有选择 html 页面...
谢谢
答案1
IIS 可以配置自行进行重定向,如果可能的话,这将是最好的方法。
另一种方法是继续在 Global.asax 中使用重定向,但是配置 IIS向 .net 运行时发送更多请求,包括对 .html 文件的请求。您应该能够逐个网站执行此操作。然后,您可以创建一个 HttpHandler,它将包含执行重定向的代码。这可以在 web.config 中配置,方法是添加如下行
<httpHandlers>
<add verb="*" path="*.html" type="You.Namespace.Handlers.RedirectHandler"/>
<add verb="*" path="*.htm" type="You.Namespace.Handlers.RedirectHandler"/>
...
</httpHandlers>
仅当此 IIS 站点的所有部分 (https://example.com) 是重定向。
如果您通过.net 运行时提供真实的.html 页面,则会造成性能损失。
希望有所帮助。
答案2
尝试使用 javascript
<head>
<script type="text/javascript">
function LeaveHTTPS()
{
if(window.location.toString().search("https")>=0){
var newURL=window.location.replace("https","http");
window.location=newURL;}
}
windows.onload= function() {LeaveHTTPS()}
</script>
</head>