Переписать одну страницу https на http Nginx - PullRequest
4 голосов
/ 20 февраля 2011

Я хотел бы переписать 'https://www.example.com' и' https://example.com' в 'http://www.example.com' или' http://example.com соответственно '.Я хочу написать только эту конкретную часть сайта, а не подпапки или страницы, связанные с php.Как мне это сделать?

Ответы [ 2 ]

7 голосов
/ 20 февраля 2011

Я использую его в другом направлении (не проверено в этом направлении, но должно работать).

if ( $scheme = https )
{
  rewrite ^ http://$host$uri;
}

РЕДАКТИРОВАТЬ: ограничить местоположение и конец, не пытайтесь переписать больше:

location / {
  if ( $scheme = https )
  {
    rewrite ^ http://$host$uri last;
  }
}
1 голос
/ 17 апреля 2014

Я использовал что-то похожее на следующее, избегая IfIsEvil и использует return вместо rewrite. Однако это не удается DRY , что беспокоит меня. Предложения приветствуются.

server {
    listen 80;
    server_name .example.com;
    index index.html index.htm index.php;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        fastcgi_pass   unix:/var/run/php5-fpm.sock ;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}

server {
    listen              443 ssl;
    server_name         .example.com;
    ssl_certificate     /etc/ssl/certs/example.com.cert;
    ssl_certificate_key /etc/ssl/private/example.com.key;

    index index.html index.htm index.php;

    # Rewrite only / to http
    location = / {
        return 301 http://$server_name$request_uri;
    }

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        fastcgi_pass   unix:/var/run/php5-fpm.sock ;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}

Смотри также

...