break、return跳转案例
案例:当访问网站--->中国人读汉语,美国人访问相同的网站切换到英文状态,这个如何实现?
[root@web01 conf.d]# cat url.oldxu.com.conf
server {
listen 80;
server_name url.oldxu.com.cn url.oldxu.com.jp;
#判断
if ( $http_host ~* cn ) {
set $language zh;
}
if ( $http_host ~* jp ) {
set $language jp;
}
rewrite ^/$ http://url.oldxu.com/$language/;
}
server {
listen 80;
server_name url.oldxu.com;
location / {
root /data;
}
}
中国 url.oldxu.com ---> url.oldxu.com --->中文
english url.oldxu.com ---> url.oldxu.com --->english
server {
listen 80;
server_name url.oldxu.com;
location / {
if ( $http_accept_language ~* "en" ) {
set $language en;
}
if ( $http_accept_language ~* "zh|zh-CN" ) {
set $language zh;
}
root /data/$language;
}
}
- return跳转
server {
listen 80;
server_name url.oldxu.com;
location / {
default_type text/html;
if ($request_uri ~* "a1=3526") {
return 200 "https://www.jd.com";
}
if ($request_uri ~* "git"){
return 403;
}
if ($request_uri ~* "^/test") {
return 302 "https://www.jd.com";
}
if ( $http_accept_language ~* "en" ) {
set $language en;
}
if ( $http_accept_language ~* "zh|zh-CN" ) {
set $language zh;
}
root /data/$language;
}
}
- break
server {
listen 80;
server_name url.oldxu.com;
root /code;
location / {
rewrite /1.html /2.html
break;
rewrite /2.html /3.html;
}
location /2.html {
rewrite /2.html /a.html;
}
location /3.html {
rewrite /3.html /b.html;
}
}
[root@web01]# echo "1.html" >/code/1.html
[root@web01]# echo "2.html" >/code/2.html
[root@web01]# echo "3.html" >/code/3.html
[root@web01]# echo "a.html" >/code/a.html
[root@web01]# echo "b.html" >/code/b.html
跳转 :
重定向 :
#flag
last #本条规则匹配完成后,继续向下匹配新的location URI规则 (开发| 伪静态)
break #本条规则匹配完成即终止,不再匹配后面的任何规则 (挂维护页)
redirect #返回302临时重定向, 地址栏会显示跳转后的地址
permanent #返回301永久重定向, 地址栏会显示跳转后的地址
中国 url.oldxu.com ---> url.oldxu.com/zh --->中文
english url.oldxu.com ---> url.oldxu.com/cn --->english
server {
listen 80;
server_name url.oldxu.com;
root /data;
set $language /default;
if ( $http_accept_language ~* zh ) {
set $language /zh;
}
if ( $http_accept_language ~* en ) {
set $language /en;
}
if ( $http_accept_language ~* ja ) {
set $language /jp;
}
rewrite ^/$ $language;
location / {
index index.html;
}
}
技术是没有终点的,也是学不完的,最重要的是活着、不秃。 学习看书还是看视频,都不重要,重要的是学会,欢迎关注,我们的目标---不秃。
---更多运维开发交流及软件包免费获取请加V: Linuxlaowang

浙公网安备 33010602011771号