我正在开发的一个网站有位于最新新闻目录中的新闻文章。
/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]
但我需要重定向到特定的年份目录。所有新闻文章都包含名称中的年份。所以 some-article-2012 或 some-article-2013。
调整我的规则以检查年份的任何帮助。
谢谢
=========编辑=======
我设法添加了一些 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”。
我尝试在重写规则的末尾添加 $1,这样你就有了:
RewriteRule ^(.*)$ /news/2012$1 [R=301,L]
但是完整的旧网址会被附加,所以你有:
/news/2012/news/latestnews/some-article-2012.html