с nginx наличие базового URL переписывают к https

Это кажется, что Вы просите просто 'Пользовательские' полномочия группы стандарта. Если Вы добавляете пользователя только к 'Пользовательской' группе, она может запустить большинство программ и может добавить, удалить или изменить объекты под ее собственной подпапкой 'Documents and Settings' (включая quicklaunch панель). Кроме того, это может только изменить файлы и папки если явно предоставленный доступ им. У 'Пользователей' также есть только очень ограниченный доступ к вещам в папке 'Windows'. Это - самый благоразумный доступ, чтобы дать обычным пользователям, и мы добавляем, что наш типичный 'пользователь домена' считает только к этой папке на локальных рабочих станциях.

0
задан 30 September 2012 в 12:41
2 ответа

В итоге я изменил $ uri на $ request_uri, чтобы аргументы можно было обрабатывать без циклов перенаправления.

server {
  listen              443;
  set $ssltoggle 2;
  if ($uri ~ ^/(img|js|css|static)/) {
      set $ssltoggle 1;
  }
  if ($request_uri = '/') {
      set $ssltoggle 1;
  }
  if ($ssltoggle != 1) {
      rewrite ^(.*)$ http://$server_name$1 permanent;
  }
}

Затем я изменил блок http, чтобы выполнить немедленное rewrite, если местоположение было = /

server {
  listen              80;
  location = / {
      rewrite ^(.*)$ https://$server_name$1 permanent;
  }
  if ($ssltoggle = 1) {
      rewrite ^(.*)$ https://$server_name$1 permanent;
  }
}

У меня есть операторы IF для обработки других перезаписей, а затем все конкретные операции выполняются ниже них. Вероятно, это просто моя конкретная конфигурация, которая приводит к циклам перенаправления и ошибкам, когда я пытаюсь обработать все, как предлагал Кристофер или как я первоначально представил в своем вопросе.

2
ответ дан 4 December 2019 в 12:42

Вам не нужны все операторы if. Вы должны работать с определениями местоположения.

server {
    listen              80;
    #rewrite base (/) to ssl
    location = / {
        rewrite ^(.*)$ https://$server_name$1 permanent;
    }

    #serve anything else
    location / {
        [serve non-ssl page ...]
    }
}

server {
    listen              443;

    #serve base url
    location = / {
        [serve ssl page ...]
    }

    #serve assets
    location ~ ^/(img|js|css|static)/ {
        [serve ssl assets ...]
    }

    #rewrite anything else
    location / {
        rewrite ^(.*)$ https://$server_name$1 permanent;
    }
}

Это не проверено и может содержать ошибки, но должно работать

1
ответ дан 4 December 2019 в 12:42

Теги

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