使用动态选项重定向

时间:2017-04-08 12:07:39

标签: php .htaccess redirect

我有一个旧网站的十几个链接,我需要重定向到一个新路径。这是旧的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需要保持完整和正常工作。

1 个答案:

答案 0 :(得分:1)

要将所有博客帖子从/news/...重定向到/blog/...,除了那些" news",您必须通过" -Blogpost - "来识别它们,捕获您要保留的部分(...),并在目标网址$1

中重复使用此部分
RewriteRule ^news/(item/\d+-Blogpost-.+)$ /blog/$1 [R,L]

如果一切正常,您可以将R替换为R=301permanent redirect)。 从不使用R=301进行测试。