2014-09-22 3 views
0

Я хотел бы перенаправить весь трафик на мой сайт на SSL, за исключением единой схемы URL. Я хотел бы, чтобы эта единственная схема возвращала ответ, который указывает, что эта конкретная часть сайта доступна только через SSL напрямую.Nginx перенаправляет на SSL, за исключением определенного URL

файл конф моего сайта в настоящее время выглядит частично так, что хорошо работает для перенаправления всего трафика:

server { 
    listen 80; 
    server_name sub.example.com; 
    rewrite^https://$server_name$request_uri? permanent; 
} 

server { 
    listen 443; 
    ssl on; 
    ssl_certificate /etc/nginx/ssl/12345.crt; 
    ssl_certificate_key /etc/nginx/ssl/example.com.key; 
    server_name sub.example.com; 

    client_max_body_size 4G; 

    # .... 
} 

Я хотел бы сделать это:

ответ

1

Перемещение перезапись на уровне сервера в корневой каталог, а затем генерировать код ошибки для API, установить страницу ошибок для этого кода состояния и разместите там свое человекообразное описание. Допустим, вы возвращаетесь 403, который, кажется, уместно, то мокрым получить это:

root /path/to/webroot; 
location/{ 
    return 301 https://$host$request_uri; 
} 

location /api/ { 
    error_page 403 /api_direct.html; 
    deny all; 
} 

Я установил корень так, чтобы страницу ошибки пользовательской можно найти, приспособиться к вашим потребностям.

Смежные вопросы