如何从https重定向到http?
我有下面的代码,但似乎并没有起作用。
server {
listen 443;
server_name example.com;
rewrite ^(.*) http://example.com$1 permanent;
}
如何从https重定向到http?
我有下面的代码,但似乎并没有起作用。
server {
listen 443;
server_name example.com;
rewrite ^(.*) http://example.com$1 permanent;
}
上面的答案是可行的,您需要生成自签名证书(或使用真实证书),并将nginx配置为如下:
server {
listen *:443;
ssl on;
server_name domain.com;
rewrite ^(.*) http://domain.com$1 permanent;
ssl_certificate /data/certs/domain.crt;
ssl_certificate_key /data/certs/domain.key;
}
请注意,如果证书是自签名的,浏览器会给出一个不友好的警告。
基于jberger的评论,一个可行的配置应该是:
server {
listen *:80;
server_name example.com;
}
server {
listen *:443 ssl;
server_name example.com;
ssl_certificate /etc/ssl/certs/example.com.cert;
ssl_certificate_key /etc/ssl/private/example.com.key;
return 301 http://$server_name$request_uri;
}
端口443(HTTPS)- 在此块中定义所有内容,如PHP、404、home、root等。即使您想将 https://www.example.com 重定向到https://example.com 或反过来,也要像@coulix一样在此处完成。
端口80(HTTP)- 在此处仅使用:
server {
listen 80;
listen [::]:80;
server_name example.com www.example.com;
# Redirect HTTP to HTTPS
return 301 https://example.com$request_uri;
}
http://domain:443
而不是https://domain/
。 - Unicornist