服务器 - nginx怎么把目录设为二级域名?

【字号: 日期:2022-07-19浏览:24作者:雯心

问题描述

假设域名为 domain.com,

怎么配置 nginx.conf, 实现 访问 abc.domain.com 的时候实际是 domain.com/abc的内容(浏览器的地址仍然显示成abc.domain.com )

在网上搜的这个配置没有用:

location / { set $domain default; if ( $http_host ~* '^(.*).domain.com$') { set $domain $1; } rewrite ^/(.*) /$domain/$1 last; }

问题解答

回答1:

关键部分:

server{ listen 80; server_name www.domain.com; root /var/www/html; index index.php index.html index.htm; location /abc {if ( $host !~* 'abc.domain.com' ){ return 404; #防止有人访问www.domain.com/abc看到abc二级域名的页面,只允许访问abc.domain.com查看} }}server{ listen 80; server_name abc.domain.com; root /var/www/html/abc; index index.php index.html index.htm; location / {#一些配置 }}回答2:

location / { #申明domain变量 set $domain default; #正则提取出二级域名 if ( $http_host ~* '^(.*).domain.com$') { #把二级域名赋值给domain变量set $domain $1; #设置rewrite规则,把/下的所有请求转发到http://domain.com/$domain/下。rewrite ^/(.*)$ http://domain.com/$domain/$1 last; } }回答3:

另外建一个server不就行了嘛!还搞那么复杂,又是正则又是rewrite的。

相关文章: