状況:オンラインストアの一連の製品の名前が変更された後、新しい名前と一致するようにURLを変更する必要がありました。リダイレクトは、古いURLと新しいURLの変換を処理するように設定されていました。.htaccessのリダイレクト - 構文なし - 効果なし
古いURLには、さまざまな場所にこれらのモデル名が含まれる可能性があるため、「キーワード」アプローチが採用されました。つまり、「THIS_STRINGが、要求されたURLのどこかで発生した場合、パスに関係なく、この新しいURLにリダイレクトします。古いモデル名と新しいモデル名が異なるため
いくつかのリダイレクトは、仕事:
RewriteRule ^.*(CC88SPECIAL).*$ http://www.example.com/widgets-DD99EXTREME [L,NC,R=301]
これが適切に新しいURLに「CC88SPECIAL」を含むすべての要求をリダイレクトします。
問題は、同じ構文は、新しい名前が古い名前が含まれてモデルに適用することができませんでしたが、すなわちAA55COMPLETEはAA55COMPLETE100になりました:「キーワード」の後に
RewriteRule ^.*(AA55COMPLETE).*$ http://www.example.com/widgets-AA55COMPLETE100 [L,NC,R=301]
アスタリスクがループを生成します。
だから形式に変更された:RewriteRule ^.*(AA55COMPLETE).$ http://www.example.com/widgets-AA55COMPLETE100 [L,NC,R=301]
問題があり、これは効果がありません。ループなし、エラーなし、503なし、URLはまったく変更されません。
私は間違っていますが、正しくするには正しい構文は何ですか?私。要求されたURLの中の特定の文字列と一致する場合、の位置にありますか?