我有以下NGINX配置:
# HTTP Redirect
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
return 301 https://$host$request_uri;
}
# HTTPS Server
server {
# Port to listen on, can also be set in IP:PORT format
listen 443 ssl;
ssl_certificate bitnami/certs/server.crt;
ssl_certificate_key bitnami/certs/server.key;
include "/opt/bitnami/nginx/conf/bitnami/*.conf";
location /status {
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}
error_page 404 403 500 503 /404.html;
location = /404.html {
root /opt/bitnami/nginx/html;
internal;
}
}这对于它所做的工作非常好,它有我的网站,并根据需要将任何HTTP重定向到HTTPS。我现在想要做的是给一个子域,比如media.website.com,我想将它重定向到一个不同的域/位置,但是保持不变。(也就是说,如果我去website.com,它仍然带我去我的主站点。)我还希望这个重定向同时适用于HTTP和HTTPS。
我怎样才能做到这一点?
发布于 2023-04-09 06:59:20
您应该添加新的server块,这样您就可以处理特定的子域了,在这里,您的配置文件中有两个新块
# HTTP Redirect
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
return 301 https://$host$request_uri;
}
# HTTPS Server
server {
listen 443 ssl;
ssl_certificate bitnami/certs/server.crt;
ssl_certificate_key bitnami/certs/server.key;
server_name website.com www.website.com;
include "/opt/bitnami/nginx/conf/bitnami/*.conf";
location /status {
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}
error_page 404 403 500 503 /404.html;
location = /404.html {
root /opt/bitnami/nginx/html;
internal;
}
}
# Redirect media.website.com (HTTP)
server {
listen 80;
server_name media.website.com;
return 301 https://media.website.com$request_uri;
}
# Redirect media.website.com (HTTPS)
server {
listen 443 ssl;
server_name media.website.com;
ssl_certificate bitnami/certs/server.crt;
ssl_certificate_key bitnami/certs/server.key;
return 301 https://newdomain.com$request_uri;
}我们还将server_name directive添加到现有的HTTPS服务器块中,以显式指定主域及其www子域。
https://serverfault.com/questions/1128219
复制相似问题