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

2019 年 11 月 11 日
 wayz17
目前是再 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;}
5023 次点击
所在节点    NGINX
22 条回复
scukmh
2019 年 11 月 11 日
jswxg
2019 年 11 月 11 日
已测试。

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

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

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

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

一分钟写 12 条,180 分钟=3 小时 ?
exip
2019 年 11 月 11 日
正则解决不了?
hahastudio
2019 年 11 月 11 日
写一段根据跳转的表格生成 nginx 规则的代码
kkkkkrua
2019 年 11 月 11 日
写个有规范的 map,然后 nginx 直接读取。
比如:
aaa-->bbb
然后在 nginx 里直接正则替换
kkkkkrua
2019 年 11 月 11 日
@jswxg #10 回复不支持 markdown
ClarkAbe
2019 年 11 月 12 日
要是不做会 404 还是什么?从错误处理那边跳不就行了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/618447

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX