有两千多个链接需要做 301,而且链接无规律,有什么好方法吗?
- 0次
- 2021-05-19 19:00:42
- idczone
目前是再 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_u大带宽服务器ri = /aaa/sy-4889.html) {return 301 /bbb/4889.html;}
https://stackoverflow.com/questions/45045665/nginx-using-or-set-at-regex-for-the-map
已测试。
location /aa/ {
rewrite ^/aa/.*?-(\d+)\.html$ /bb/$1.html permanent;
}
我寻思正则表达式可以
我没说清楚。/aaa/里只有部分内容 301 到 /bbb/,还有部分保持不变
需要 301 的写到文件不行就了 然后让别人写这个文件 ^_^
用 openresty lua
用 map
ngnix rewrite 支持正则的
那也可以改成这样。
location ~ ^/aa/(sr|sy)-(\d+)\.html$ {
return 301 /bbb/$2.html;
}
试试代码格式化。。。
```
location ~ ^/aa/(sr|sy)-(\d+)\.html$ {
return 301 /bbb/$2.html;
}
```
都说了没规律了,还能有啥办法,一条条写呗
不用 301 的呢?哪个多?哪个少写哪个。。。
没有规律用不了正则,那就只能一个个写咯,还有什么办法
为什么要 aaa 转到 bbb,图的什么?
+1
2000 多很多么,map 出来,直接改
一分钟写 12 条,180 分钟=3 小时 ?
正则解决不了?
写一段根据跳转的表格生成 nginx 规则的代码
写个有规范的 map,然后 nginx 直接读取。
比如:
aaa-->bbb
然后在 nginx 里直接正则替换
回复不支持 markdown
要是不做会 404 还是什么?从错误处理那边跳不就行了
都 root 到一个 html 里面去做前端跳转去。。
这不挺规律的么