加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > Nginx > 正文

php – 无法将https站点重定向到另一个url – nginx服务器块

发布时间:2020-05-29 07:20:47 所属栏目:Nginx 来源:互联网
导读:我正在尝试将促销子域附加到我的网站上,该网站已经在https上,然后使用重定向网址重定向到网站中的另一个页面.例如,基本上如果我的网站是https://example.com并且有一个页面https://example.com/xyz/xyz/promo,那么当我输入https://promo.example时我想要一个

我正在尝试将促销子域附加到我的网站上,该网站已经在https上,然后使用重定向网址重定向到网站中的另一个页面.例如,基本上如果我的网站是https://example.com并且有一个页面https://example.com/xyz/xyz/promo,那么当我输入https://promo.example时我想要一个浏览器重定向.com到这个页面.我已经设置了所有相关的AWS route 53设置.

我的nginx服务器块有这个

   server {                                                                                                                                                                             
            listen 80 default_server;
            listen [::]:80 default_server;
        return 301 https://example.com$request_uri;
    }

    server {
            server_name www.example.com;
            return 301 https://example.com$request_uri;
    }

    server {
        server_name example.com;
        return 301 https://example.com$request_uri;
    }

    server {
        server_name promo.example.com;
        return 301 https://example.com/xyz/xyz/promo;
    }
ssl_certificate /..path/..;
ssl_certificate_key //..path/..;
ssl_dhparam /..path/...;
ssl_trusted_certificate /..path/..;

add_header Strict-Transport-Security 'max-age=31536000; includeSubDomains; preload';
ssl_prefer_server_ciphers on;
ssl_ciphers .......; //hidden
ssl_protocols TLSv1.2 TLSv1.1 TLSv1;
ssl_session_cache   shared:SSL:10m;
ssl_session_timeout 10m;
ssl_buffer_size 1400;
spdy_headers_comp 0;
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4 valid=86400;
resolver_timeout 10;

server {
    listen 443 ssl spdy;
    server_name example.com;
    include /etc/nginx/helper.conf;
    root /var/www/example/  ;
    index index.php index.html;
    charset utf-8;

    location / {
            add_header "Access-Control-Allow-Origin" "*";
            try_files $uri $uri/ /index.php$is_args$args;
    }

    location ~ .php${
            fastcgi_split_path_info ^(.+.php)(/.+)$;
            fastcgi_pass unix:/var/run/php5-fpm.sock;
            fastcgi_index index.php;
            include fastcgi_params;
    }

    location ~ /.ht {
            deny all;
    }
} 

目前的行为:

当我直接在没有https的情况下输入promo.example.com时,它会正确重定向.但如果我输入https://promo.example.com,它只会向我显示example.com,其网址为https://promo.example.com

预期行为:

如果我输入https://promo.example.com,它应该重定向到https://example.com/xyz/xyz/promo

我不能把https://promo.example.com然后重定向到服务器块,因为nginx会抛出错误.

如何重定向https://promo.example.com转到https://example.com/xyz/xyz/promo

由于使用Strict-Transport-Security标头,浏览器自动提供301重定向,因此从未使用过此服务器块:

server {
    server_name promo.example.com;
    return 301 https://example.com/xyz/xyz/promo;
}

端口重定向80-> 443甚至在连接到服务器的浏览器之前发生,因此Nginx总是基于端口443服务最新的服务器块.这应该可以帮助您:

server {
    listen 443 ssl;
    listen 80;
    server_name promo.example.com;
    return 301 https://example.com/xyz/xyz/promo;
}

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读