我们正在将我们的网站从Wordpress迁移到另一个博客,我们正在寻找一种方法,使用/ blog / date / title的“旧”URL结构将所有用户重定向到新的/ blog / title。有超过2000个帖子,所以我真的不必手动完成这些!
例如,当前网址可能是:
http://www.example.com/blog/2013/06/this-is-the-title/
我们希望将其重定向到:
http://www.example.com/blog/this-is-the-title/
结构永远是
/blog/yyyy/mm/title
是否可以使用htaccess忽略部分网址,或者是否需要使用正则表达式来查找日期模式?
答案 0 :(得分:2)
假设,对于2个不同的帖子,不能有相同的slug,我认为这是在wordpress中给出的。
在我的脑海中,有两种方法可以做到这一点:
1:为此使用简单的htaccess重定向。现在,我不是htaccess的专家,但我认为它是这样的:
RewriteRule ^blog/(\d{4})/(\d{2})/(.+)$ /blog/$3 [L]
2:这个,有点棘手,但可以根据您的需要获得灵活的结果。由于旧网址不存在,因此会生成404网页。现在,将404页面设置为在其中搜索帖子,如果找到匹配项,则将用户重定向到该页面,而不响应404状态。如果他们不匹配,你可以向他们展示最受欢迎/最相似的结果等等。我不明白为什么人们更频繁地这样做。根据您的查询显示建议应该在404页面上很常见。
如果您需要更多帮助,请与我联系。
答案 1 :(得分:1)
您可以将此重定向规则用作旧网站上的网站根.htaccess中的第一条规则:
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/(blog)/\d+/\d+/(.+)$ [NC]
RewriteRule ^ /%1/%2 [L,R=301,NE]