2017-08-04 4 views
1

私はShop-CMSを切り替えて古いURLを.htaccessに入れて、古い製品を新しい場所にリダイレクトしました。RedirectMatch:間違ったURLにリダイレクト

しかし、いくつかのリダイレクトが間違っている:私はexample.com/products/catxy/319に行くとき、私は理解したよう

RedirectMatch 301 ^/products/catxy/313? https://www.example.com/products/catxy/product-1/ 
RedirectMatch 301 ^/products/catxy/314? https://www.example.com/products/catxy/product-2/ 
RedirectMatch 301 ^/products/catxy/319? https://www.example.com/products/catxy/product-3/ 

Iは、製品-1にではなく、製品-3

にリダイレクトそれより上の正規表現は、/ products/catxy/319 [MAYBEMORE] - >製品-3にリダイレクトすることを意味します。

319用に多くの異なるエンディングがあるので、^/products/catxy/319 $を書くことができません(その製品IDのすべてのバリエーション)。

自分の状況でmod_rewriteを使用する方が良いかどうかわかりません。おそらく

/products/catxy/313 

または

products/catxy/31 

あなた:ので、あなたの最初のルールで始まるものにマッチ^/products/catxy/313?、最後の桁はオプション作っている:

答えて

0

問題は、パターンの最後に?の存在であります末尾のスラッシュを省略して、次のようなルールを持つことを意味します。

RedirectMatch 301 ^/products/catxy/313(?:/.*)?$ https://www.example.com/products/catxy/product-1/ 
RedirectMatch 301 ^/products/catxy/314(?:/.*)?$ https://www.example.com/products/catxy/product-2/ 
RedirectMatch 301 ^/products/catxy/319(?:/.*)?$ https://www.example.com/products/catxy/product-3/ 

変更をテストする前に、ブラウザのキャッシュをクリアすることを忘れないでください。

+0

いいえ、うまくいきませんでしたが、私は^/products/catxy/319(。*)$に変更しました。これは私のケースでは役に立ちます – suntrop

+0

今すぐ確認してください。あなたのURLはおそらく '313年後にもっと多くのテキストを持っています – anubhava

関連する問題