Nginx 将 http 重写为 https 但不将 /admin 重写为

Nginx 将 http 重写为 https 但不将 /admin 重写为

我有一个客户端区域,它是 https 并且将其添加到 client.mydomain.com.conf 后运行良好:

server {
listen 0.0.0.0:80;
listen [::]:80;

server_name client.domain.com www.client.domain.com;

rewrite        ^ https://$server_name$request_uri? permanent;
}

所有 client.domain.com/* 页面都是 https。

我还有一个管理区域,我厌倦了通过更改所有管理区域文件内容使其 SSL“优化”。

管理区域的链接是 client.mydomain.com/admin

我需要的是禁用 https 重定向仅到管理区域 client.mydomain.com/admin,而 client.mydomain.com/* 将被 https 重定向。

我尝试使用下面的代码,但出现错误〜/home/nginx/conf/globals/proxy.conf:38 nginx 中的重复位置“/”:配置文件 /etc/nginx/nginx.conf 测试失败〜

 server {
 listen 80;
 server_name example.com;
 location /admin {
   # handle admin area here;
   }
  location / {
  return 301 https://$http_host$request_uri$is_args$query_string;
 }
 }
 server {
  listen 443 ssl;
 server_name example.com;
 # ssl settings
 location /admin {
return 301 http://$http_host$request_uri$is_args$query_string;
 }
  location / {
 # handle all ssl pages here
   }
}

这是“client.mydomain.com.conf”文件http://www.jsfiddle.net/LSyQq,它没有任何修改,并且这里是冲突的 proxy.confhttp://www.jsfiddle.net/LJY3C

答案1

尝试在配置中使用此行来重定向我的流量

location ^~ /admin/ {
    rewrite ^ http://$http_host/$uri redirect;
  }

如果有效的话请告诉我。

:)

相关内容