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

2019-11-11 15:15:32 +08:00
 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;}
4440 次点击
所在节点    NGINX
22 条回复
scukmh
2019-11-11 15:23:39 +08:00
jswxg
2019-11-11 15:54:28 +08:00
已测试。

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

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

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

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

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

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

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

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

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

© 2021 V2EX