私が取り組んでいるサイトでは、最新のニュース ディレクトリ内にニュース記事がありました。
/news/latestnews/some-article-2012.html
これらは、ニュース記事の年に応じて異なるディレクトリに移動されました。したがって、2013年は現在次の範囲内にあります。
/news/2013/some-article-2013.html
および 2012 年は次のとおりです。
/news/2012/some-article-2012.html
次を使用して、ディレクトリの1つに簡単に最新ニュースを送信できます。
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]
この URL
/news/latestnews/some-article-2012.html
にリダイレクトされます
/news/2012
しかし、「some-article-2012.html」が URL にありません。
$1 を rewriterule の最後に追加しようとしたので、次のようになります。
RewriteRule ^(.*)$ /news/2012$1 [R=301,L]
ただし、完全な古い URL が追加されるため、次のようになります。
/news/2012/news/latestnews/some-article-2012.html