2017-04-08 11 views
0

新しいパスにリダイレクトする必要がある古いウェブサイトから12のリンクがあります。これは、古いURLの蓄積である:動的オプションでリダイレクト

にリダイレクトする必要が
/news/item/{id}-{name} 

/blog/item/{id}-{name} 

今、私はあなたは自分のリダイレクト中のブログでニュースを交換し、考えを聞きます。あなたが想像することができるように、それは単純なことかもしれませんが、古いニュースカテゴリにはニュースアイテムも含まれています。古いWebサイトなので、これらのアイテムを決して異なるカテゴリに分けることはありません。だから私はいつそれをブログページにリダイレクトできるのかを特定する必要があります。幸いなことに、すべてのブログ投稿には静的な文字列が含まれており、URLを識別するために使用できます(私は思う)。

だからあなたは以下のURLがあります

/news/item/{id}-{name} 
/blog/item/{id}-{name} 

のURLの{名前}である静的な単語はブログ投稿-名前ですが、私はにリダイレクトするURLを識別するためにそれを使用することができます/ブログ/ページ?

2例:ここでは

/news/item/33018-It-was-a-great-day-to--ride 
/news/item/29110-Blogpost-author-john-doe-time-to-come-apart 

我々はニュースのURLに2つの項目を得たが、わずか1それらの、実際のブログ投稿にのみ切り替えることができます。もう1つのURLは元のままで動作する必要があります。

+0

「なぜあなたのリダイレクトでブログにニュースを入れ替えることができないのですか?より具体的な例を挙げることができますか? URLのさまざまな部分で許可されていることをより詳細に定義します(例: 'item'、' {id} '、' {name} 'とは何ですか? '{id}'は数値ですか?現在の例では '/ news/item/{id} - {name}'を '/ blog/item/{id} - {name}'に直接マッピングできない理由は何もないようですなぜなら、「ニュース」と「ブログ」は異なる唯一の部分だからです。 – MrWhite

+0

それは本当ですが、ニュースURLにニュース項目があるだけなので、単にURLを交換するだけではいけません。ニュースカテゴリには、その特定のURLを持つはずの他の項目もあります。私のEDITを見てください。 –

+0

それは文字通り各ブログのURLに 'Blogpost'ですか?また、ターゲットURLに「Blogpost」も含まれている必要がありますか? –

答えて

1

たものが「ニュース」を除いて、あなたは(...)を維持し、$1

ターゲットURLでこれを再利用したい部分をキャプチャし、「-Blogpost-」によってそれらを識別しなければならない、 /blog/.../news/...からすべてのブログの記事をリダイレクトします
RewriteRule ^news/(item/\d+-Blogpost-.+)$ /blog/$1 [R,L] 

RR=301permanent redirect)に置き換えることができます。 のテストR=301でテストしてください。

関連する問題