最近遇到一个问题: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协议下的看不出什么影响,如果是https那?

震惊!仅一个符号就“黑掉”你的网页!

可以看到 在请求地址不加 访问具体页面路径的情况下

浏览器想帮助你访问默认首页,自动帮你加了"/"

但是 重定向为 http,这就出现了文章开头 访问不到的情况

震惊!仅一个符号就“黑掉”你的网页!

而如果我们自己手动加上

震惊!仅一个符号就“黑掉”你的网页!是可以访问页面资源的

==================================

总结

何时可以忽略这种情况?

1.网站发布的方式为http协议

2.网站的默认首页就在网站发布的根目录下


否则就在我们跳转首页的地址上加上 "/"吧

location.href="xxx/"


相关文章: