V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
NGINX
NGINX Trac
3rd Party Modules
Security Advisories
CHANGES
OpenResty
ngx_lua
Tengine
在线学习资源
NGINX 开发从入门到精通
NGINX Modules
ngx_echo
wayz17
V2EX  ›  NGINX

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

  •  
  •   wayz17 · 2019-11-11 15:15:32 +08:00 · 4417 次点击
    这是一个创建于 1826 天前的主题,其中的信息可能已经有所发展或是发生改变。
    目前是再 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 条回复    2019-11-12 14:08:13 +08:00
    jswxg
        2
    jswxg  
       2019-11-11 15:54:28 +08:00   ❤️ 1
    已测试。

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

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

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

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

    一分钟写 12 条,180 分钟=3 小时 ?
    exip
        16
    exip  
       2019-11-11 18:15:54 +08:00 via Android
    正则解决不了?
    hahastudio
        17
    hahastudio  
       2019-11-11 18:19:20 +08:00 via Android
    写一段根据跳转的表格生成 nginx 规则的代码
    kkkkkrua
        18
    kkkkkrua  
       2019-11-11 18:41:41 +08:00
    写个有规范的 map,然后 nginx 直接读取。
    比如:
    aaa-->bbb
    然后在 nginx 里直接正则替换
    kkkkkrua
        19
    kkkkkrua  
       2019-11-11 18:42:02 +08:00
    @jswxg #10 回复不支持 markdown
    ClarkAbe
        20
    ClarkAbe  
       2019-11-12 01:11:53 +08:00 via Android
    要是不做会 404 还是什么?从错误处理那边跳不就行了
    phpfpm
        21
    phpfpm  
       2019-11-12 10:36:38 +08:00
    都 root 到一个 html 里面去做前端跳转去。。
    anyforever
        22
    anyforever  
       2019-11-12 14:08:13 +08:00
    这不挺规律的么
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3003 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 13:39 · PVG 21:39 · LAX 05:39 · JFK 08:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.