将单页https重写为http Nginx

我想将“https://www.example.com”和“https://example.com”分别改写为“http://www.example.com”或“http://example.com”。 我只想编写该网站的特定部分,而不是任何子文件夹或PHP相关的页面。 我该怎么做呢?

我用它在另一个方向(没有测试在这个方向,但应该工作)。

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

编辑:限制到一个位置,并结束不要尝试重写更多:

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

我已经使用了类似于以下的东西,它避免了IfIsEvil,并使用return而不是rewrite 。 然而,干扰失败,这困扰我..建议表示欢迎。

 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; } } 

也可以看看

  • nginx http位置文档
  • 相关的nginx https到http的答案