2
Bac2 OP @rainy3636 让我冷静一下(#゚Д゚)我把 DNS 这事忘了,从昨天折腾到现在了→_→
现在的问题是如何用 nginx rewrite 实现,毕竟都折腾那么长时间了≥﹏≤ |
3
secondwtq 2016-02-07 10:36:44 +08:00
server {
listen 80; listen 443 ssl; server_name www.abc.com; ssl_certificate ***; ssl_certificate_key ***; return 301 https://abc.com$request_uri; } server { listen 80; server_name abc.com return 301 https://abc.com$request_uri; } 这样试试呢 |
4
babytomas 2016-02-07 10:42:24 +08:00 via Android
给你一个思路啊,在 nginx.conf 最底部加一个 listen 80 ,但是不加 server_name ,把这个层全部重定向 https://abc.com
然后不要把 www.abc.com 加入到其他配置的 server_name |
6
ys0290 2016-02-07 10:51:14 +08:00 via iPhone
你缺一个监听 443 www 的
|
9
ys0290 2016-02-07 10:59:02 +08:00 via iPhone
看 log 呢?
|
10
jalena 2016-02-07 11:01:13 +08:00
|
12
imlonghao 2016-02-07 11:13:50 +08:00 via Android
独立做一个 www.abc.com 的跳转到 abc.com
|
13
imlonghao 2016-02-07 11:15:21 +08:00 via Android 1
server {
listen 80; server_name abc.com www.abc.com; return 301 https://abc.com$request_uri; } server { listen 443 ssl; server_name www.abc.com; ssl_certificate ***; ssl_certificate_key ***; ***** return 301 xxxxxxxxxx; } server { listen 443 ssl; server_name abc.com; ssl_certificate ***; ssl_certificate_key ***; ***** } 大概就是这个样子了... |
14
printempw 2016-02-07 11:16:38 +08:00 via Android
if host name = www.xx 啊,等下贴配置
|
15
printempw 2016-02-07 11:18:10 +08:00 via Android
if ($host = www.prinzeugen.net) {
rewrite ^/(.*)$ $scheme://prinzeugen.net/$1 permanent; } 放 443 server 块里 |
16
imlonghao 2016-02-07 11:22:08 +08:00 via Android
|
17
winterbells 2016-02-07 11:23:43 +08:00
@rainy3636 应该是显性 DNS 转发吧,相当于直接 301 转发。 cnname 是解析到 ip 上
|
19
shyling 2016-02-07 12:00:25 +08:00 via iPad
表示我是借助 if 实现的:人访问强制 301 到 https ,蜘蛛访问强制 302 到 http
|
20
shyling 2016-02-07 12:02:43 +08:00 via iPad
try_files 在 core_module,if 在 rewrite_module 。并不是特别需要在意
|
21
Andy1999 2016-02-07 15:00:53 +08:00
https 301 先验证证书可信否 可信才会跳转 因此单独写一个 server
|
22
Return2legacy 2016-02-07 15:41:07 +08:00 via Android
这两天刚好也在弄这个,但是在做 ssl 检测的时候不知道为什么会出很多问题,评分只有 C ,最后还是只做了 2 个 serve , 80 的 301 重定向,以及主 server 监听 443 ,回到 A+。
|
23
just1 2016-02-07 16:08:34 +08:00 via Android
这不是最基本的 nginx 配置吗,上面你们在干嘛。。
|
24
aprikyblue 2016-02-07 16:33:29 +08:00
|
25
aprikyblue 2016-02-07 16:38:37 +08:00
> 第一个 server 内加 listen 443 ssl;
如果这样,对于 SSL+abc.com ,它是要第一个 server 还是第二个 server 。。。 > 搞不懂为啥两个 443 server 块合在一起就会出错。。。 有个 301 呢。。怎么能合。。合起来 https://abc.com 不就无限 301 到自身了吗。。 @just1 1L 还来了一个 CNAME 也是醉。、。、 |
26
shyling 2016-02-07 17:54:37 +08:00 via Android 1
@aprikyblue hsts 仅仅在 https 连接时有效。我的意思是收到 http 请求里的 hsts 头会被忽视
|
27
aprikyblue 2016-02-07 19:37:19 +08:00
@shyling 目前咱 http 和 https 都返回了 hsts 头,查了下的确是要在 https 里返回 ORZ 。。
|
28
TaMud 2016-02-09 07:26:56 +08:00
nginx( https) -> pass -> nginx( http)
|