12

我有一个 Wordpress 博客,我将博客文章从我的博客重定向到我的博客,格式如下:

旧博客称为“新闻”,新博客简称为“博客”——两者都存在于同一个域中的子目录中,如下所示。

旧“新闻”博客结构

http://www.example.com/news/new-android-os-3431

新的“博客”博客结构

http://www.example.com/blog/new-android-os

本质上,此重定向需要做两件事:-

  1. 重定向到“博客”目录
  2. 将帖子名称保留在相同的结构中,但删除 URL 末尾的最后一组数字

我有大约 900 多个帖子需要设置重定向 - 我知道我可以手动添加每个帖子,但这需要一些时间。谁能指出这是否可以直接在 htaccess 文件中使用正则表达式来最小化这个过程?

我的 htaccess 目前看起来像这样:

# BEGIN WordPress
<IfModule mod_rewrite.c>
 RewriteEngine On
 RewriteBase /news/
 RewriteRule ^index\.php$ - [L]
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteRule . /news/index.php [L]
</IfModule>
# END WordPress
4

1 回答 1

25

使用 mod_alias:

RedirectMatch 301 ^/news/(.+?)(-[0-9]+)?$ /blog/$1

或使用 mod_rewrite:

RewriteEngine On
RewriteRule ^news/(.+?)(-[0-9]+)?$ /blog/$1 [L,R=301]
于 2013-05-21T08:52:19.333 回答