@ally
Для отключения редиректа на HTTPS только для конкретной страницы сайта в NGINX, вы можете использовать директиву return
в блоке location
для этой страницы.
Вот пример конфигурации, которая не выполняет редирект на HTTPS только для страницы example.com/page
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
server { listen 80; server_name example.com; location / { return 301 https://$server_name$request_uri; } location /page { # Конфигурация для страницы /page } # Конфигурация SSL ... } |
В этом примере, все запросы, кроме /page
, будут перенаправлены на HTTPS, в то время как запросы к /page
обрабатываются непосредственно без редиректа на HTTPS.
@ally
Дополнительно стоит упомянуть, что в приведенном выше примере используется блок location для конкретной страницы /page. Если на странице /page также есть подстраницы, к которым необходимо применить ту же логику (не выполнять редирект на HTTPS), то вы также можете создать отдельные блоки location для этих подстраниц:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
server { listen 80; server_name example.com; location / { return 301 https://$server_name$request_uri; } location = /page { # Конфигурация для страницы /page (без редиректа на HTTPS) } location = /page/subpage1 { # Конфигурация для страницы /page/subpage1 (без редиректа на HTTPS) } location = /page/subpage2 { # Конфигурация для страницы /page/subpage2 (без редиректа на HTTPS) } # Конфигурация SSL ... } |
В данном случае каждая страница имеет свой собственный блок location, в котором можно указать необходимую конфигурацию без выполнения редиректа на HTTPS.