koltykov
@koltykov

Как сделать перенаправление с https обратно на http в NGIXNX?

Задача такая: где встречается CMS, должно перекидывать на https протокол, а везде где не встречается CMS, должно перекидывать на обычный.
При CMS перекидывает, а обратно не срабатывает. Срабатывает только на директориях, а на PHP файлах не срабатывает.
К примеру https://site1.ru/subfolder/ - перекидывает на site1.ru/subfolder
А так https://site1.ru/subfolder/file.php нет
server {
    listen 80;
    server_name site1.net www.site1.net;

    # Папка с контентом сайта
    root /var/www/site1/;

    access_log /var/log/nginx/site1-access.log;
    error_log /var/log/nginx/site1-error.log;

    location ~* ^/cms/(.*)/$ {
       rewrite ^ https://$server_name$request_uri? permanent; 
    }
    rewrite ^([^.\?]*[^/])$ $1/;

    include /etc/nginx/templates/default;
    include /etc/nginx/templates/php;
}
server {
    listen 443 ssl;
    
    ssl         on;
    ssl_protocols       SSLv3 TLSv1;
    ssl_certificate     /etc/nginx/ssl/ssl_site1.crt;
    ssl_certificate_key /etc/nginx/ssl/ssl_site1.key;

    server_name site1.net www.site1.net;

    # Папка с контентом сайта
    root /var/www/site1/;

    access_log /var/log/nginx/ssl_site1-access.log;
    error_log /var/log/nginx/ssl_site1-error.log;

    location ~* ^/cms/(.*)/$ {
        try_files $uri /cms/index.php?q=$1&$query_string;
    }
        
    rewrite ^([^.\?]*[^/])$ $1/;

    location / {
       return 301 http://$server_name$request_uri;
    }

    include /etc/nginx/templates/default;
    include /etc/nginx/templates/php;
}

Что не так делаю?

Update:
Конфиг templates/php:
# Передаём обработку PHP-скриптов PHP-FPM
location ~ \.php$ {
    #try_files $uri =404; 
    error_page 404 /404.htm;
    fastcgi_pass   unix:/tmp/wwwpool.sock;

    fastcgi_cache one;
    fastcgi_cache_min_uses 5;

    fastcgi_cache_valid 200 301 302 304 5m;

    fastcgi_cache_key "$request_method|$host|$request_uri";

    fastcgi_index index.php;
    fastcgi_intercept_errors on; # только на период тестирования

    include fastcgi_params;

    fastcgi_param       SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    fastcgi_ignore_client_abort     off;

    fastcgi_buffers 16 16k; 
    fastcgi_buffer_size 32k;
}
  • Вопрос задан
  • 2453 просмотра
Пригласить эксперта
Ответы на вопрос 1
@brutal_lobster
Комментировать
Ваш ответ на вопрос

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

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