Как я могу переназначить с 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;
}
if ($host = 'foo.com') {
rewrite ^/(.*)$ http://www.foo.com$1 permanent;
}
Вам необходимо создать 2 отдельных серверных блока:
Порт 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;
}