最近遇到一个问题:https的跳转总是重定向到http中
请求时写的是https
结果返回的是 http
很奇怪,自己没有写重定向,而且同样的代码,发布在http中就可以用
通过一遍遍的摸查,才发现了一个秘密 —— 浏览器重定向
==================================
当我们发布网站时,若是主站下面的默认首页(通常为index.html)不是
在网站根目录下时,就像如下的情况
网站以WebSite为根目录,然后index的文件分别在ROX目录和TL目录里,
然后发布地址是localhost:8082(以http协议)
这个时候访问localhost:8082,得到的是个目录文件
若我们想访问ROX里的index.html ,
一般直接在地址栏里加上 "/ROX"
或者 使用js跳转语句 得到
BUT
这时候看下NetWork会发现,在请求的资源前还有一个重定向!!
浏览器给请求地址多加了一个后缀 "/",
请求地址从 http://localhost:8082/ROX <http://localhost:8082/ROX>
变为了 http://localhost:8082/ROX <http://localhost:8082/ROX>/
这是http协议下的看不出什么影响,如果是https那?
可以看到 在请求地址不加 访问具体页面路径的情况下
浏览器想帮助你访问默认首页,自动帮你加了"/"
但是 重定向为 http,这就出现了文章开头 访问不到的情况
而如果我们自己手动加上
是可以访问页面资源的
==================================
总结
何时可以忽略这种情况?
1.网站发布的方式为http协议
2.网站的默认首页就在网站发布的根目录下
否则就在我们跳转首页的地址上加上 "/"吧
location.href="xxx/"
热门工具 换一换