-1

検索ランキングを失うことなく名前を変更したいディレクトリが2つあります。URLの規則と推奨される名前の変更は次のとおりです。

古い:mysitename.com/folder1/folder2/filenames

新規:mysitename.com/newfoldername1/newfoldername2/filenames

filenameは、各ページの名前です。

4

1 に答える 1

2

RewriteRule ^(.*)/folder1/folder2/(.*)$ $1/newfoldername1/newfoldername2/$2 [R,L]

このルールの問題は、RewriteRules がドメインではなくパスでのみ一致することです。(.*)/ドメインを一致させようとしているかのように、ルールの前に がありますが、これは必要ありません。また、書き換えではなくリダイレ​​クトとして設定しました...おそらくこれはあなたが望むものであり、その場合は「R」フラグをそのままにしておきますが、以下のコードではそれを削除します書き直したい。ルールを次のように変更すると、機能するはずです。

RewriteRule ^newfoldername1/newfoldername2/(.*)$ /folder1/folder2/$1

編集:あなたが他のルールを投稿したので、[L]私はあなたがやろうとしていると思うものを削除し、順序を逆にしました。

編集 2: 上記のルールは、入力するユーザーdomain.com/newfoldername1/newfoldername2/whateverがサイレントに書き換えられることを前提としていましたdomain.com/folder1/folder2/whatever。最新のコメントの言い回しは、入力したユーザーdomain.com/folder1/folder2/whateverをリダイレクトして (つまり、ブラウザーでアドレスを変更する) domain.com/newfoldername1/newfoldername2/whatever、サーバーがこの新しいパスを処理する準備ができていることを示しています。その場合、次のルールが必要です。

RewriteRule ^folder1/folder2(/.*)?$ /newfoldername1/newfoldername2$1[R=301,L]

于 2013-02-03T00:23:35.827 に答える