如何将http页面重定向到https?
我在login.config中尝试过这个代码块,但它转到http并导航到https。我想首先解决https问题。
resolve: {
data: function ($q, $state, $timeout, $location, $window) {
var deferred = $q.defer();
if ($location.protocol() !== 'https') {
$window.location.href = $location.absUrl().replace('http', 'https');
}
deferred.resolve(true);
return deferred.promise;
}
}
由于
答案 0 :(得分:1)
您应该使用网络服务器重定向到https。
例如,如果您正在使用nginx编辑nginx.conf的服务器部分
server {
listen 80;
server_name my.domain.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name my.domain.com;
# add Strict-Transport-Security to prevent man in the middle attacks
add_header Strict-Transport-Security "max-age=31536000";
[....]
}
答案 1 :(得分:1)
我相信你正在解决错误的问题。您的AngularJS项目托管在某种服务器上(NodeJS,Apache HTTP,NGINX等)。该服务器应该负责重定向!
对于Apache HTTP,您可能需要查看:https://wiki.apache.org/httpd/RedirectSSL
对于NGINX,你的配置会有类似的东西:
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
return 301 https://$host$request_uri;
}