我有一台服务器,我只想在HTTPS中运行。我在Amazon AMI上运行Node和Nginx。
要重定向到HTTPS,我只需将其放在我的nginx.conf文件中:
server {
listen 80;
server_name my_server;
return 301 https://$server_name$request_uri;
}
然后配置SSL。但是,当http://www.mypage.com/#/whatever
等角色网址出现时,生成的重定向为https://www.mypage.com/
,而没有重要的Angular语法。
如何使其适用于Angular哈希标记语法? Nginx版本是1.6.2。
由于
答案 0 :(得分:3)
这是不可能的。 我不打算谈论重定向到不同协议的nginx最佳方法。
问题是哈希永远不会发送到服务器。
我知道的每个浏览器都会忽略网址中的哈希部分。
因此,例如,如果您将此URL发送到示例服务器:
http://localhost/6/?e#hash_here
请求将发送:
http://localhost/6/?e
浏览器只是将其剥离。
从JS的观点来看,我建议在EventListener
上使用一些onhashchange
,
这样您就可以拦截所有请求并将location.hash
存储在cookie中。
现在,当此请求到达服务器时,您将能够使用nginx $http_cookie
(它将类似于angularLocation=#/whatever
,因此请使用一些正则表达式来查找它是否存在)