ArtyomovAnton
@ArtyomovAnton
PHP и всё что рядом

Как сделать редирект некоторых страниц в ngninx?

Доброго всем. Уже всё перекопал в инете, так и не нашел ответа. Как перенаправить страницу с определенным get параметром на другую схему.
Требуется открывать 2 страницы сайта только по https. Весь сайт - http.
вот эти страницы
http://мойсайт/component/content/article.html?id=71
http://мойсайт/component/content/article.html?id=72
Нужно что бы только на них работал 301 редирект на https протокол.
Что я пробовал:
if ($scheme = 'http' ) {
        rewrite	/component/content/article.html?id=71$  https://мойсайт/component/content/article.html?id=71 permanent;
    }

Такое ощущение, что rewrite не видит параметры. И видит их только если вместо них вписать, например (.*) в адресе перенаправления указать $1
  • Вопрос задан
  • 175 просмотров
Решения вопроса 1
isqua
@isqua
Научу HTML, CSS, JS, BEM и Git
Нужно писать location внутри секции server, которая слушает 80-й порт. В location нужно проверить гет-параметр.

server {
    listen 80;

    location ~* /component/content/article.html {
        if ($args ~ "^id=(71|72)") {
            return 301 https://мойсайт$request_uri;
        }
    }
    # всякие ваши настройки
}


Интересно, почему вдруг эти две страницы, которые отличаются от других только id, понадобилось вынести? Может, лучше вынести их в отдельный путь? Типа /private/component/content/article.html и уже для /private всегда делать редирект на HTTPS?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы