› 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 · 5590 views
    This topic created in 2552 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
    jswxg
    Nov 11, 2019❤️1
    2
    已测试。

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

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

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

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

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