如果url包含特定单词,则htaccess重定向

Ben*_*Ben 3 .htaccess mod-rewrite

我正在制作的网站上有新闻文章,位于最新的新闻目录中.

/news/latestnews/some-article-2012.html
Run Code Online (Sandbox Code Playgroud)

现在根据新闻文章的年份将它们移到不同的目录中.所以2013年现在在:

/news/2013/some-article-2013.html
Run Code Online (Sandbox Code Playgroud)

和2012年在:

/news/2012/some-article-2012.html
Run Code Online (Sandbox Code Playgroud)

我可以使用以下命令轻松更新其中一个目录:

RewriteRule ^news/latestnews/(.*)$ /news/2011/$1 [R=301,L]
Run Code Online (Sandbox Code Playgroud)

但我需要重定向到特定的年份目录.所有新闻文章都包含名称的年份.所以有些文章 - 2012年或某篇文章 - 2013年.

任何有关调整我的规则以帮助检查年份的帮助.

谢谢

=========编辑=======

我已设法添加一些RewriteCond重定向到正确的目录,但无法附加所请求的文件名.

所以使用这个规则

RewriteCond %{REQUEST_URI} ^/news/latestnews/(.*)$
RewriteCond %$1 ^(.*)2012(.*)$
RewriteRule ^(.*)$ /news/2012 [R=301,L]
Run Code Online (Sandbox Code Playgroud)

这个网址

/news/latestnews/some-article-2012.html
Run Code Online (Sandbox Code Playgroud)

被重定向到

/news/2012 
Run Code Online (Sandbox Code Playgroud)

但网址中缺少"some-article-2012.html".

我已经尝试在rewriterule的末尾添加1美元,所以你有:

    RewriteRule ^(.*)$ /news/2012$1 [R=301,L]
Run Code Online (Sandbox Code Playgroud)

但是完整的旧网址会被追加,所以你有:

/news/2012/news/latestnews/some-article-2012.html
Run Code Online (Sandbox Code Playgroud)

Ben*_*Ben 8

好吧,我不能完全相信这一点,因为它是由我发布的另一个论坛上的用户,但我想分享以防它在这里帮助某人.

RewriteCond %{REQUEST_URI} ^/news/latestnews/(.*)$
RewriteRule ^news/latestnews/(.*)(201[0-9])(.*)$ /news/$2/$1$2$3 [R=301,L]
Run Code Online (Sandbox Code Playgroud)

这实际上将涉及2010年以来的所有年份.