例七 原URL中的信息重定向至目标的URL
引用原URL当中的信息,重定向至目标的URL
#http://alice.111.com ==> http://www.111.com/alice
#http://jack.111.com ==> http://www.111.com/jack
环境:
mkdir /usr/share/nginx/html/{jack,alice} 准备目标目录
echo "jack" > /usr/share/nginx/html/jack/index.html 准备目标页面
echo "alice" > /usr/share/nginx/html/alice/index.html 准备目标页面
vim /etc/hosts 客户端域名解析
192.168.19.100 alice.111.com jack.111.com www.111.com
配置地址重写:
vim /etc/nginx/conf.d/default.conf
if ($host ~* "^www.111.com$" ) {
break;
}
if ($host ~* "^(.*)\.111\.com$") {
set $user $1;
rewrite .* http://www.111.com/$user permanent;
}
#break:跳出循环,如不加break每一次重写后,主机名都符合if的判断结果,会再次被重写
#set 指令是用于定义一个变量,并且赋值。应用于server,location,if环境。
systemctl restart nginx
访问页面进行测试:
alice.111.com
jack.111.com