我有一个旧网站的十几个链接,我需要重定向到一个新路径。这是旧的URL构建:
/news/item/{id}-{name}
需要将其重定向到:
/blog/item/{id}-{name}
现在我听到你的想法,只需在你的重定向中将博客与博客交换。好吧,如果它很简单,但是你可以想象,旧的新闻类别也包含新闻项目,因为它是一个旧网站,他们从不将这些项目分成不同的类别。所以我需要确定何时可以将其重定向到博客页面。幸运的是,每篇博文都包含一个静态字符串,我们可以使用它来识别网址(我认为)。
所以你有以下网址:
/news/item/{id}-{name}
/blog/item/{id}-{name}
网址的{name}中的静态字是blogpost-name,但是我可以用它来识别要重定向到/ blog / page的URL吗?
2个例子:
/news/item/33018-It-was-a-great-day-to--ride
/news/item/29110-Blogpost-author-john-doe-time-to-come-apart
这里我们在新闻网址中有两个项目,但只有其中一个,实际的博客帖子只能切换。另一个URL需要保持完整和正常工作。
答案 0 :(得分:1)
要将所有博客帖子从/news/...
重定向到/blog/...
,除了那些" news",您必须通过" -Blogpost - "来识别它们,捕获您要保留的部分(...)
,并在目标网址$1
RewriteRule ^news/(item/\d+-Blogpost-.+)$ /blog/$1 [R,L]
如果一切正常,您可以将R
替换为R=301
(permanent redirect)。 从不使用R=301
进行测试。