web-dev-qa-db-ja.com

.htaccess複数のページを1つにリダイレクトする方法は?

私はホストを移動しています。新しいサイト(同じドメイン名)がWordpressで実行されると、URL構造が変更されます。

ページ名の最初の部分が同じで、新しいサイトの1つのページにすべてリダイレクトする必要があるURLがたくさんあります。例えば。

  • http://www.example.com/binfet-timeinthepark.htm
  • http://www.example.com/binfet-backtothecity.htm
  • http://www.example.com/binfet-justmeetmehalfway.htm

すべてに行く必要があります:

http://www.example.com/bev-binfet/

これらすべてをキャプチャするルールを作成する方法はありますか?約50の異なるケースがあります。この例では、「binfet」は先頭にありますが、約50の異なる名前です。

更新

@Fayazに応えて

URLが同じ名前で始まり、その後に異なる終わりがある約50のケースがあります。各ケースについて、そのケースのすべてのURLは単一の新しいページに移動します。

例えば。

http://www.example.com/xyz-sometext.htm http://www.example.com/xyz-someothertext.htm ...すべてが1つの新しいURLに移動します

http://www.example.com/xyznewplace/

2
user2250892

解決:

RewriteRuleで完全なURLを使用することをお勧めします。

したがって、binfetで始まるすべてのURLが/bev-binfet/に移動するには、.htaccessファイルに次のディレクティブを追加する必要があります(他の書き換えルールの前)。

RewriteRule ^binfet http://www.example.com/bev-binfet/ [R=301,L]

理由:

ほとんどの場合、non-wwwリンクをwwwリンクにリダイレクトする他のルールがあります。そのため、完全なURLを使用すると、追加のリダイレクトが回避されます。たとえば、誰かがアクセスしようとします:

http://example.com/binfet-timeinthepark.htm

RewriteRuleに完全なURLがない場合、最初にリダイレクトされます:

http://example.com/bev-binfet/

そして最後に:

http://www.example.com/bev-binfet/

ここで説明したソリューションを使用すると、最初のリダイレクトを回避し、次の場所に直接移動できます。

http://www.example.com/bev-binfet/

さらなるクエリ:

何らかの理由で、あなたの質問にはもっと多くのことがあると思います。あなたが言った:

約50の異なるケースがあります。この例では、「binfet」は先頭にありますが、約50の異なる名前です。

A。 URLが特定のフレーズ(たとえばbinfet)で始まるURLが50個あるということですか?

or

B。このような開始フレーズは50個あり(binfetで始まるURLの1つのグループ、xyzで始まるURLの別のグループなど)、各グループは終了します一意のURLに追加しますか?

Aの場合、ここで指定した解決策で十分です。ただし、Bの場合、各開始フレーズに対してこのルールを50回記述するか、すべてのフレーズをカバーできるより良いパターンを見つける必要があります。

Bの場合は、質問を詳細に更新してください。

1
Fayaz

この例では、「binfet」は先頭にありますが、約50の異なる名前です。

binfetで始まるすべてのURLをリダイレクトするには、次のmod_rewriteディレクティブを試してくださいbefore.htaccessファイル内の既存のWPディレクティブ:

RewriteRule ^binfet /bev-binfet/ [R=301,L]
0
MrWhite