1

我为我编写了一个旧网站,现在我已将其迁移到 wordpress,但许多网站仍然有旧网址的链接,我想将它们重定向到 Wordpress,因为有 404 响应。

旧结构是:http ://www.website.com/news/2013/june/01/slug-slug-slug-slug wordpress 中的新 结构: http ://www.website.com/news/2013/06 /01/蛞蝓蛞蝓

请注意,我只需要更改:

january -> 01
february -> 02
march -> 03
april -> 04
may -> 05
june -> 06
july -> 07
august ->08
september -> 09
october -> 10
november -> 11
december -> 12

我是否必须在 wordpress 的 .htaccess 或 rewrite.php 文件中包含一些内容?我一直在想我只需要将 %monthday% 变量从数字更改为字符串...但是如果我更新 wordpress 我可能需要再次更改它。

4

2 回答 2

1

如果你想使用 mod_rewrite,你可以用 12 条规则来做到这一点。我不熟悉 wordpress 本身,我不知道通过 Wordpress 本身的配置是否有一种“简单”的方法。在将所有请求发送到 Wordpress 的 index.php 文件的规则上方添加以下规则:

RewriteRule ^news/([^/]+)/january/([^/]+)/(.*)$ /news/$1/01/$2/$3 [R,L]
RewriteRule ^news/([^/]+)/february/([^/]+)/(.*)$ /news/$1/02/$2/$3 [R,L]
RewriteRule ^news/([^/]+)/march/([^/]+)/(.*)$ /news/$1/03/$2/$3 [R,L]
#etc...

与往常一样,请参阅文档以获取有关正在使用的语法的信息。

于 2013-10-06T09:54:35.310 回答
0

将有 12 条这样的规则,所以你可以有这样的东西:

RewriteRule ^(news/[^/]+)/january/([^/]+/.+)$ $1/01/$2 [L,R=301,NC]
RewriteRule ^(news/[^/]+)/february/([^/]+/.+)$ $1/02/$2 [L,R=301,NC]
RewriteRule ^(news/[^/]+)/march/([^/]+/.+)$ $1/03/$2 [L,R=301,NC]
RewriteRule ^(news/[^/]+)/april/([^/]+/.+)$ $1/04/$2 [L,R=301,NC]
RewriteRule ^(news/[^/]+)/may/([^/]+/.+)$ $1/05/$2 [L,R=301,NC]
RewriteRule ^(news/[^/]+)/june/([^/]+/.+)$ $1/06/$2 [L,R=301,NC]
RewriteRule ^(news/[^/]+)/july/([^/]+/.+)$ $1/07/$2 [L,R=301,NC]
RewriteRule ^(news/[^/]+)/august/([^/]+/.+)$ $1/08/$2 [L,R=301,NC]
RewriteRule ^(news/[^/]+)/september/([^/]+/.+)$ $1/09/$2 [L,R=301,NC]
RewriteRule ^(news/[^/]+)/october/([^/]+/.+)$ $1/10/$2 [L,R=301,NC]
RewriteRule ^(news/[^/]+)/november/([^/]+/.+)$ $1/11/$2 [L,R=301,NC]
RewriteRule ^(news/[^/]+)/december/([^/]+/.+)$ $1/12/$2 [L,R=301,NC]

在任何其他重写规则之前,还要确保将这些规则放在首位。

于 2013-10-06T09:54:43.413 回答