我正在处理的网站上有新闻文章,位于最新的新闻目录中。
/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年。
任何有关调整我的规则以帮助检查年份的帮助。
由于
========= EDIT =======
我已设法添加一些RewriteCond以重定向到正确的目录,但无法附加所请求的文件名。
所以使用这个规则
RewriteCond %{REQUEST_URI} ^/news/latestnews/(.*)$
RewriteCond %$1 ^(.*)2012(.*)$
RewriteRule ^(.*)$ /news/2012 [R=301,L]
此网址
/news/latestnews/some-article-2012.html
重定向到
/news/2012
但网址中缺少“some-article-2012.html”。
我尝试在rewriterule的末尾添加$ 1,所以你有:
RewriteRule ^(.*)$ /news/2012$1 [R=301,L]
但完整的旧网址会被追加,所以你有:
/news/2012/news/latestnews/some-article-2012.html
答案 0 :(得分:8)
好的,我不能完全相信这一点,因为它是由我发布的另一个论坛上的用户,但我认为我会分享,以防有人在这里。
RewriteCond %{REQUEST_URI} ^/news/latestnews/(.*)$
RewriteRule ^news/latestnews/(.*)(201[0-9])(.*)$ /news/$2/$1$2$3 [R=301,L]
这实际上将涉及2010年以来的所有年份。