在htaccess中使用正则表达式进行301重定向

Zab*_*abs 9 .htaccess redirect http-status-code-301

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

旧博客称为"新闻",新博客简称为"博客" - 两者都存在于子目录中的同一域中,如下所示.

旧'新闻'博客结构

http://www.example.com/news/new-android-os-3431
Run Code Online (Sandbox Code Playgroud)

新的'博客'博客结构

http://www.example.com/blog/new-android-os
Run Code Online (Sandbox Code Playgroud)

基本上这个重定向需要做两件事: -

  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
Run Code Online (Sandbox Code Playgroud)

Jon*_*Lin 19

使用mod_alias:

RedirectMatch 301 ^/news/(.+?)(-[0-9]+)?$ /blog/$1
Run Code Online (Sandbox Code Playgroud)

或使用mod_rewrite:

RewriteEngine On
RewriteRule ^news/(.+?)(-[0-9]+)?$ /blog/$1 [L,R=301]
Run Code Online (Sandbox Code Playgroud)