古いURLは次の形式です。
https://www.example.com/collection/item/item-name-123
新しいURLは次の形式です。
https://www.example.com/collection/item/123
でヒットをリダイレクトしようとしていますhttps://www.example.com/collection/item/item-name-123
からhttps://www.example.com/collection/item/123
まで、しかし私は.htaccess
のルールを廃止するようには思えません。
私が試したのは、
RewriteRule ^(.*)/item/(.*)-([0-9]+)$ $1/item/$3 [R=301]
これはうまくいっていないようです。単純なものが足りないのですか。
単純なものが足りないのですか。
あなたはL
フラグを必要とし(さらなる処理を防ぐため)、このディレクティブは既存の.htaccess
ファイルの一番上(すなわち# BEGIN WordPress
セクションの前)に置かれるべきです。
あなたが既に適切なRewriteBase
ディレクティブを定義していない限り(WordPressフロントコントローラは通常これを持っています)、あなたは置換を前に付ける必要もありますスラッシュを含む文字列(ただし、外部リダイレクトにはこれを使用することをお勧めします)。
それ以外の場合は、正規表現と置換文字列は正しく機能するはずです。
言い換えれば、あなたのファイルの一番上に:
RewriteRule ^(.*)/item/(.*)-([0-9]+)$ /$1/item/$3 [R=302,L]
(キャッシュの問題を回避するために)302(一時的)リダイレクトでテストし、意図したとおりに動作することを確認した場合にのみ301に変更します。
テストする前にブラウザのキャッシュをクリアする必要があります。