2013-07-11 93 views
3

我正在工作的网站有坐在最新的新闻目录中的新闻文章。如果url包含一个特定的词htaccess重定向

/news/latestnews/some-article-2012.html 

根据新闻报道的年份,这些现在已被移到不同的目录中。 所以2013是现在中:

/news/2013/some-article-2013.html 

和2012年在:

/news/2012/some-article-2012.html 

我可以使用易于办事指南到一个目录中:

RewriteRule ^news/latestnews/(.*)$ /news/2011/$1 [R=301,L] 

但我需要重定向到具体的年份目录。所有新闻文章都包含年份的名称。所以一些文章 - 2012年或一些文章 - 2013年。

任何帮助调整我的规则,以检查一年。

感谢

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

我已经成功地添加一些的RewriteCond重定向到正确的目录,但有麻烦追加请求文件名。

所以使用这个法则

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

此网址

/news/latestnews/some-article-2012.html 

被重定向到

/news/2012 

但 “一些-文章-2012.html” 从URL中缺少。

我已经尝试添加$ 1的重写规则的末尾,以便您有:

RewriteRule ^(.*)$ /news/2012$1 [R=301,L] 

但全旧的URL被追加所以你必须:

/news/2012/news/latestnews/some-article-2012.html 

回答

8

好吧,我可以”因为它是在我发布的另一个论坛上的用户,但我认为我会分享,以防它在这里帮助某人。

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

这实际上与所有年,从2010年

+0

由于处理工程完美! – barbocc

相关问题