nginx rewrite 能够简单实现二级域名跳转。下面为使用方法。
访问效果:
当访问 http://abc.test.com 跳转到 http://www.test.com/abc
浏览器地址会变www.test.com/abc
实现方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| server { listen 80; server_name www.test.com; location / { root /data/test; index index.html; } } server { listen 80; server_name *.test.com; if ( $http_host ~* "^(.*)\.test\.com$") { set $domain $1; rewrite ^(.*) http://www.test.com/$domain break; } }
|
访问效果二
当访问http://abc.test.com跳转到http://www.test.com/abc/
这样配置浏览器的地址就会显示成http://abc.test.com
实现方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| server { listen 80; server_name *.test.com; root /usr/local/www; #这是里可以加多个目录,如果不加目录,会无法访问到abc.test.com/目录下的文件,如图片目录/images location ~ ^/(test|images|styles)/ { proxy_redirect off; proxy_set_header Hostwww.test.com; proxy_pass http://192.168.1.2:8080; } location / { set $domain default; if ( $http_host ~* "^(.*)\.test\.com$") { set $domain $1; } rewrite ^/(.*) /$domain/$1 last; } access_log off; }
|
获取二级域名并指向不同静态目录的方法
1 2 3 4 5 6 7
| if ( $host ~* (\b(?!www\b)\w+)\.\w+\.\w+ ) { set $subdomain /$1; } location / { root /home/www/public_html$subdomain; index index.html index.php; }
|