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;
	}
}
posted @ 2019-11-08 21:57  老王教你学Linux  阅读(153)  评论(0)    收藏  举报