【发布时间】:2013-07-11 11:29:48
【问题描述】:
我正在开发的一个网站有位于最新新闻目录中的新闻文章。
/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
【问题讨论】:
标签: .htaccess mod-rewrite