V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
NGINX
NGINX Trac
3rd Party Modules
Security Advisories
CHANGES
OpenResty
ngx_lua
Tengine
在线学习资源
NGINX 开发从入门到精通
NGINX Modules
ngx_echo
wayz17
V2EX  ›  NGINX

有两千多个链接需要做 301,而且链接无规律,有什么好方法吗?

  •  
  •   wayz17 · Nov 11, 2019 · 5097 views
    This topic created in 2364 days ago, the information mentioned may be changed or developed.
    目前是再 server 里加了两个多个 if,除了这个还有什么写法?
    if ($request_uri = /aaa/sr-4878.html) {return 301 /bbb/4878.html;}
    if ($request_uri = /aaa/sr-4880.html) {return 301 /bbb/4880.html;}
    if ($request_uri = /aaa/sy-4884.html) {return 301 /bbb/4884.html;}
    if ($request_uri = /aaa/sy-4889.html) {return 301 /bbb/4889.html;}
    22 replies    2019-11-12 14:08:13 +08:00
    jswxg
        2
    jswxg  
       Nov 11, 2019   ❤️ 1
    已测试。

    location /aa/ {
    rewrite ^/aa/.*?-(\d+)\.html$ /bb/$1.html permanent;
    }
    knva
        3
    knva  
       Nov 11, 2019
    我寻思正则表达式可以
    wayz17
        4
    wayz17  
    OP
       Nov 11, 2019
    @jswxg 我没说清楚。/aaa/里只有部分内容 301 到 /bbb/,还有部分保持不变
    ganbuliao
        5
    ganbuliao  
       Nov 11, 2019
    需要 301 的写到文件不行就了 然后让别人写这个文件 ^_^
    guanhui07
        6
    guanhui07  
       Nov 11, 2019
    用 openresty lua
    mashirozx
        7
    mashirozx  
       Nov 11, 2019 via Android
    用 map
    simonsww
        8
    simonsww  
       Nov 11, 2019
    ngnix rewrite 支持正则的
    jswxg
        9
    jswxg  
       Nov 11, 2019
    那也可以改成这样。

    location ~ ^/aa/(sr|sy)-(\d+)\.html$ {
    return 301 /bbb/$2.html;
    }
    jswxg
        10
    jswxg  
       Nov 11, 2019
    试试代码格式化。。。

    ```
    location ~ ^/aa/(sr|sy)-(\d+)\.html$ {
    return 301 /bbb/$2.html;
    }
    ```
    lululau
        11
    lululau  
       Nov 11, 2019
    都说了没规律了,还能有啥办法,一条条写呗
    matrix1986
        12
    matrix1986  
       Nov 11, 2019
    不用 301 的呢?哪个多?哪个少写哪个。。。
    xuanbg
        13
    xuanbg  
       Nov 11, 2019   ❤️ 1
    没有规律用不了正则,那就只能一个个写咯,还有什么办法
    veike
        14
    veike  
       Nov 11, 2019
    为什么要 aaa 转到 bbb,图的什么?
    odi
        15
    odi  
       Nov 11, 2019 via Android
    @lululau +1

    2000 多很多么,map 出来,直接改

    一分钟写 12 条,180 分钟=3 小时 ?
    exip
        16
    exip  
       Nov 11, 2019 via Android
    正则解决不了?
    hahastudio
        17
    hahastudio  
       Nov 11, 2019 via Android
    写一段根据跳转的表格生成 nginx 规则的代码
    kkkkkrua
        18
    kkkkkrua  
       Nov 11, 2019
    写个有规范的 map,然后 nginx 直接读取。
    比如:
    aaa-->bbb
    然后在 nginx 里直接正则替换
    kkkkkrua
        19
    kkkkkrua  
       Nov 11, 2019
    @jswxg #10 回复不支持 markdown
    ClarkAbe
        20
    ClarkAbe  
       Nov 12, 2019 via Android
    要是不做会 404 还是什么?从错误处理那边跳不就行了
    phpfpm
        21
    phpfpm  
       Nov 12, 2019
    都 root 到一个 html 里面去做前端跳转去。。
    anyforever
        22
    anyforever  
       Nov 12, 2019
    这不挺规律的么
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2489 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 67ms · UTC 10:07 · PVG 18:07 · LAX 03:07 · JFK 06:07
    ♥ Do have faith in what you're doing.