Nginx перенаправляет не-www (http), www (http) и не-www (https) на www (https) [duplicate]

для тех, у кого есть Eclipse Neon

Я хотел запустить Eclipse Neon и имел JRE 1.8, но JDK 1.7 Вернул ошибку = 13, тогда я установил java JDK 1.8, и все работало как шарм

33
задан on3al 14 January 2014 в 08:01
поделиться

2 ответа

Перенаправление ssl не будет работать, если ваш сертификат ssl не поддерживает домен, отличный от www. Конфигурация правильная, но ее можно свести только к одному серверу переадресации

Также не забудьте перезагрузить nginx sudo service nginx reload

server {
  listen 80;
  listen 443 ssl;
  server_name example.com;
  # add ssl settings
  return 301 https://www.example.com$request_uri;
}
17
ответ дан Mohammad AbuShady 15 August 2018 в 21:48
поделиться
  • 1
    Это именно то, что я хотел, и использую его наоборот. Спасибо! – Danijel-James W 30 January 2014 в 04:31
  • 2
    как насчет http://www..., он не перенаправляется на https ...? – montrealmike 19 August 2014 в 15:17
  • 3
    Вам понадобится отдельный сервер с именем сервера www.domain.com и прослушивает порт 80, чтобы выполнить эту дополнительную переадресацию, если вам это нужно. – Mohammad AbuShady 19 August 2014 в 15:32
  • 4
    Это дает мне - nginx: [emerg] invalid parameter "443" in /etc/nginx/nginx.conf:96 – sarat 18 October 2014 в 12:27
  • 5
    Я просто тестировал его на этой версии, он тоже дал мне то же самое, вы можете разбить его на две строки прослушивания listen 80; и listen 443; – Mohammad AbuShady 21 October 2014 в 22:35

Я опаздываю, но вы можете сделать это

server{
  listen 443 ssl;
  server_name www.mydomain.com;
  root /www/mydomain.com/;

  ssl    on;
  ssl_certificate /ssl/domain.crt;
  ssl_certificate /ssl/domain.key;
  .
  . 
  .
}

server{
  listen 80;
  server_name www.mydomain.com mydomain.com;
  return 301 https://$server_name$request_uri;
}

server{
  listen 443;
  server_name mydomain.com;
  return 301 https://www.$server_name$request_uri;
}

Или вы можете заменить return 301 https://www.$server_name$request_uri; на rewrite ^ http://www.$server_name$request_uri? permanent;, оба будут работать.

Вам также нужно установите это в веб-мастеру google для улучшения SEO.

9
ответ дан Suneel Kumar 15 August 2018 в 21:48
поделиться
  • 1
    Кажется неправдой, www.mydomain.com будет заменен на www.www.mydomain.com в блоке прослушивания 80. – Feras 22 February 2016 в 06:19
  • 2
    @Feras Я обновил ответ, пожалуйста, проверьте. Пожалуйста, дайте мне знать, если у вас возникли проблемы. – Suneel Kumar 22 February 2016 в 06:29
  • 3
    Да, это правильный, я использую ту же настройку – Feras 22 February 2016 в 06:55
  • 4
    @Feras Отлично, я рад, что это помогает. – Suneel Kumar 22 February 2016 в 07:35
  • 5
    Это, похоже, не работает только для https // mydomain.com – dan 11 June 2016 в 17:45
Другие вопросы по тегам:

Похожие вопросы: