我需要一个Guru的建议.
在Nginx的conf文件中,我想将子域作为变量,以便重定向访问,如下所示.
http://userX.example.com/?hoo=barhttp://example.com/userX/?hoo=bar但我明白了
http://example.com/userX.example.com/?hoo=bar我目前的_http.conf设置如下.所以很明显它是有效的.
## default HTTP
server {
listen 80;
server_name default_server;
return 301 http://example.com/$host$request_uri;
}
Run Code Online (Sandbox Code Playgroud)
下面是否有任何变量或方法?
## default HTTP
server {
listen 80;
server_name default_server;
return 301 http://example.com/$subdomain$request_uri;
}
Run Code Online (Sandbox Code Playgroud)
我知道如果子域部分是有限的,它可以被重定向,但我必须每次都添加它们,我希望它尽可能简单.
有没有简单的方法呢?
[ENV]:CentOS:7.3.1611,nginx:nginx/1.13.3,*.example.com在NS设置中针对同一台服务器.
使用正则表达式:
server {
listen 80;
server_name ~^(?<subdomain>.+)\.example\.com$;
return 301 http://example.com/$subdomain$request_uri;
}
Run Code Online (Sandbox Code Playgroud)
Ric*_*ith 14
您可以在其中使用正则表达式server_name来提取您需要的部分作为命名捕获.例如:
server {
listen 80;
server_name ~^(?<name>.+)\.example\.com$;
return 301 http://example.com/$name$request_uri;
}
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请参阅此文
| 归档时间: |
|
| 查看次数: |
5756 次 |
| 最近记录: |