1、情况说明
因公司业务需要,要做网站的SEO,就是利用搜索引擎的规则提高网站在有关搜索引擎内的自然排名。目的是让其在行业内占据较好地位,获得品牌收益。很大程度上是网站经营者的一种商业行为,将自己或自己公司的排名前移。
注意点:
在nginx的rewrite中,经常会遇到一些URL带有特殊的字符,这时候就需要进行转义,需要转义的特殊字符如下:
$:用于引用变量的符号,需要进行转义。
^:用于匹配字符串的开始位置,需要进行转义。
*:用于匹配任意字符,需要进行转义。
.:用于匹配任意单个字符,需要进行转义。
?:用于匹配0个或1个前面的字符,需要进行转义。
+:用于匹配1个或多个前面的字符,需要进行转义。
|:用于分隔多个规则,需要进行转义。
(:用于分组,需要进行转义。
):用于分组,需要进行转义。
2、旧路径跳转新路径
server {
listen 80;
server_name www.bgxwz.com;
rewrite ^/company /about permanent;
}
3、域名http跳转https
server {
listen 80;
server_name www.bgxwz.com;
rewrite ^(.*)$ https://${server_name}$1 permanent;
}
4、根域跳转www
需求:
http://bgxw.com
http://www.bgxwz.com
https://bgxwz.com
统一跳转到
https://www.bgxwz.com
server {
listen 80;
server_name bgxwz.com www.bgxwz.com;
rewrite ^(.*)$ https://${server_name}$1 permanent;
}
server {
listen 443 ssl;
server_name bgxwz.com;
rewrite ^(.*)$ https://www.${server_name}$1 permanent;
}
5、多语言路径跳转
需求 :
/en 跳转 /en/newRegister
/zh 跳转 /zh/newRegister
server {
listen 80;
server_name www.bgxwz.com;
rewrite ^/(en|zh)$ /$1/newRegister permanent;
}
6、多语言+根路径跳转
需求:
/blog/all 跳转 https://blog.bgxwz.com/
/zh/blog/all 跳转 https://blog.bgxwz.com/zh
/zh-tw/blog/all 跳转 https://blog.bgxwz.com/zh-tw
server {
listen 80;
server_name www.bgxwz.com;
rewrite ^/(zh|zh-tw)?/?blog/all /$1 permanent;
}
7、去掉路径尾部反斜杠
需求:
/en/ 跳转 /en
/zh/ 跳转 /zh
server {
listen 80;
server_name www.bgxwz.com;
rewrite ^/(en|zh)/$ /$1 permanent;
}
8、修改请求参数
需求:
/?lang=zh 跳转 /zh-tw
说明:$args用来获取GET请求中的参数,例如:a=1&b=2
location / {
if ($args ~* "lang=zh") {
# 清空请求参数,否则跳转后会带上请求参数
set $args '';
rewrite ^/ /zh-tw permanent;
}
}
评论区