侧边栏壁纸
博主头像
背锅小王子博主等级

我从事运维工作有十年之久,主要从事云原生相关的工作,对k8s、devops、servicemesh、可观察性等较为熟悉!

  • 累计撰写 59 篇文章
  • 累计创建 64 个标签
  • 累计收到 1 条评论

目 录CONTENT

文章目录

nginx常用301跳转

背锅小王子
2022-08-01 / 0 评论 / 0 点赞 / 194 阅读 / 628 字
温馨提示:
本文最后更新于 2023-03-26,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

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;
      }
}
0

评论区