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