.htaccess RedirectMatch 语法

.htaccess RedirectMatch Syntax

我正忙于尝试使 301 重定向的语法正确。我已经在网上进行了很多研究,但是由于我对此完全陌生,所以它并没有为我点击。我希望这里有人可以提供帮助。

我正在输入以编写一个规则,该规则将使用以下格式更改所有链接:

http://www.example.com/yyyy/mm/dd/page-name

http://www.example.com/category/page-name

在上面的示例中,“/yyyy/mm/dd/”对于任意数量的日期都是可变的。这是一个 Wordpress 迁移,新主题不允许我们保留永久链接的日期和名称格式,我们正在努力保留几年的 SEO "link juice."

出于各种原因,我更愿意使用 301 重定向而不是重写来执行此操作。提前致谢!

编辑添加:这是我的尝试,我想我有重写和重定向的混合语法(除其他外):

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

# END WordPress

RedirectMatch 301 ^/([0-9]{4})/([0-9]{2})/([0-9]{2})/(.*)$ /category//
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/([0-9]{4})/([0-9]{2})/([0-9]{2})/(.*)$ /category/ [L,R=301,NC]

我似乎已经开始使用它了:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RedirectMatch 301 ^/[0-9]{4}/[0-9]{2}/[0-9]{2}/(.*)$ http://www.example.com/category//
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

感谢所有回复的人,至少帮助我缩小了范围。