我已转到一个新的软件,现在需要捕获旧的 URL 并将其重写为新的 URL。
以下是一个例子:
旧网址:http://www.religiousforums.com/forum/neopagan-revival-religions-dir/19088-druid-horoscope-whats-your-sign.html 新网址:https://www.religiousforums.com/threads/druid-horoscope-whats-your-sign.19088/
我尝试了这个但是没有用:
location ~* ^/forum/[^/]+/[0-9]+-[^\.]+\.html$ {
rewrite [^/]+/([0-9]+)-[^\.]+\.html$ /threads/$1/ last;
}
我这里漏掉了什么?我只需要新 URL 中的 ID。文本并不重要。
答案1
更新:不清楚你想做什么
如果你的意思是想从两个 URL 提供相同的内容,那么你应该这样做内容重复这是个很糟糕的想法。现在重定向正确地从旧 URL 迁移到新 URL,您必须进行以下设置:
location ~* ^/forum/[^/]+/([0-9]+)-([^.]+)\.html$ {
return /threads/$2.$1 permanent;
}
或者简单地把它放在一个公共位置块中:
location /forum {
rewrite ^/forum/[^/]+/([0-9]+)-([^.]+)\.html$ /threads/$2.$1 permanent;
}
编辑:这有效:
location /forum/ {
rewrite ^/forum/[^/]+/([0-9]+)-([^.]+)\.html$ /threads/$1/ permanent;
}