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

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

  •  
  •   wayz17 · 31 天前 · 2200 次点击
    这是一个创建于 31 天前的主题,其中的信息可能已经有所发展或是发生改变。
    目前是再 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
        2
    jswxg   31 天前   ♥ 1
    已测试。

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

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

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

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

    一分钟写 12 条,180 分钟=3 小时 ?
        16
    exip   31 天前 via Android
    正则解决不了?
        17
    hahastudio   31 天前 via Android
    写一段根据跳转的表格生成 nginx 规则的代码
        18
    kkkkkrua   31 天前
    写个有规范的 map,然后 nginx 直接读取。
    比如:
    aaa-->bbb
    然后在 nginx 里直接正则替换
        19
    kkkkkrua   31 天前
    @jswxg #10 回复不支持 markdown
        20
    ClarkAbe   31 天前 via Android
    要是不做会 404 还是什么?从错误处理那边跳不就行了
        21
    phpfpm   31 天前
    都 root 到一个 html 里面去做前端跳转去。。
        22
    anyforever   30 天前
    这不挺规律的么
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   4237 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 27ms · UTC 02:47 · PVG 10:47 · LAX 18:47 · JFK 21:47
    ♥ Do have faith in what you're doing.