2016-10-28 6 views
1

状況:製品ラインの一部が新機能でアップグレード/強化され、すべてのモデル名に「XL」が追加されました。.htaccess redirects - "ネストされた"文字列を処理する方法?

問題:古いURLを新しいURLにリダイレクトする必要がありますが、新しいURL にはという古いキーワード+「XL」が含まれているため、リダイレクトが多すぎます。

例: RewriteRule ^.*(PRODUCT-001).*$ http://www.example.com/PRODUCT-001-XL [L,NC,R=301]

どのように私はこの正確な一致する文字列ではなく、URLの残りの部分をすることを指定することができますか?

など。 「このルールは一致している必要がありPRODUCT-001しかしないPRODUCT-001-XL.*を末尾には何も/それの後に存在することは何もすることができます

+0

あなたは答えを受け入れる必要があります! – nozzleman

+0

成功? http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work – chris85

答えて

1

。それを削除し、あなたの正規表現がPRODUCT-001と一致していないだろうPRODUCT-001-XL

RewriteRule ^.*(PRODUCT-001)$ http://www.example.com/PRODUCT-001-XL [L,NC,R=301] 

参照:https://regex101.com/r/tP8yq4/1https://regex101.com/r/tP8yq4/2

別のアプローチあなたの場合のみ-XLをブロックしたければ、否定的な先読みになります。これにはApache 2+を使用する必要があります。

^.*PRODUCT-001(?!-XL).*$ 

第三デモ:それはあなたの問題を解決するかどうかhttps://regex101.com/r/tP8yq4/3

関連する問題