2013-07-11 96 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

相關問題