@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.