不要写在server_name 中
时间: 2024-03-04 13:48:31 浏览: 62
HTTP_HOST 和 SERVER_NAME 的区别详解
5星 · 资源好评率100%
如果您不想在 `server_name` 中写正则表达式,可以使用以下 Nginx 配置代码来实现动态变量的替换:
```
server {
listen 443 ssl;
ssl_certificate /path/to/cert;
ssl_certificate_key /path/to/key;
if ($host ~* "^(\d+)\.city\.zx7b\.com$") {
set $subdomain $1;
rewrite ^(.*)$ https://$subdomain.zx7b.com$request_uri permanent;
}
...
}
```
这个配置代码中,使用 `if` 指令匹配三级字域名,将匹配到的数字部分保存到 `$subdomain` 变量中,然后使用 `rewrite` 指令将请求重定向到 `$subdomain.zx7b.com`。注意,这里使用了 `permanent` 标记,表示使用 301 永久重定向。
阅读全文