http->https на nginx кроме одной папки. как?

G
На сайте с 17.08.2011
Offline
94
5242

Задача переключить запросы http на https для всего сайта, кроме одной конкретной папки (скажем /fldr/), содержимое которой должно отдаваться по http.

Сейчас, средствами ISPManager сделано такое грубое решение:

server {

...

listen ip.ip.ip.ip:80;

return 301 https://$host$request_uri;

}

server {

...

listen ip.ip.ip.ip:443;

}

Подскажите, пожалуйста, более элегантный вариант конфига, решающий задачу.

Андрей
На сайте с 30.09.2009
Offline
482
#1

scheme вам в помощь.

EuroHoster.org ( https://eurohoster.org/ru/ ) - территория быстрых серверов. Выделенные серверы, VPS, SSL, домены и VPN.
LM
На сайте с 18.10.2009
Offline
117
#2

server {

server_name example.net www.example.net;
listen 80;
listen 443 ssl;
...
location / {
if ($scheme = http) {
rewrite ^ https://$server_name$request_uri permanent;
}
...
}

location /fldr/ {
...
}

}
G
На сайте с 17.08.2011
Offline
94
#3
LinuxMan:
server {

if ($scheme = http) {
rewrite ^ https://$server_name$request_uri permanent;

Спасибо за помощь - поспешил с вопросом.

Решил по другому, как в принципе и предполагал, что должно такое быть - обернул редирект в условие:

listen ip.ip.ip.ip:80;

if ($request_uri !~ "^/fldr")

{

return 301 https://$host$request_uri;

}

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий