web-dev-qa-db-ja.com

古い非SEF URLの301リダイレクトが新しい記事IDを持つ新しいSEF URLに

サイト上のすべての非SEF URLを新しいSEF URLにリダイレクトしたいのですが、古いサイトと新しいサイトの記事のIDが異なります。古い非SEF URLの301リダイレクトを新しいSEF URLに適用する方法

1
akhil

古い非sef URLから新しい記事IDを持つ新しいSEFまで、少し面倒に聞こえます。一度にすべてを追跡するには変更が多すぎます。

古い記事IDを維持したか、少なくともこの移行を段階的に行った場合、たとえば、最初に古いページのSEF URLを有効にし、しばらくしてから、検索エンジンがインデックスを更新してから、次の手順に進むことが最善です。手順なので、sef urlをリダイレクトするだけで済みます(必要な場合)。

さて、それに対処する方法は異なります...

  • いくつの記事?
  • 新しい記事は古い記事よりも高いIDを持っていますか、それともIDの置換が混在していますか?

コアリダイレクトコンポーネント/プラグインがあり、SH404SEFのような拡張機能があり、役立つ可能性があるリダイレクトに使用できる.htaccessがあります。

問題は、大量の記事がある場合、すべてのリダイレクトを作成するのは面倒です。また、記事に競合するIDがあり、特定のIDを持つ古い非SEF URLを別の記事の新しいSEF URLにリダイレクトする場合-新しい記事の1つが持つ可能性にどのように対処する予定ですか?リダイレクトしたものと同じIDですか?

別の可能性としては、現状のままにして、404ページを作成して、ページが移動したことを全員に通知し、Googleで新しいサイトマップをプッシュすると、すぐに新しいURLがインデックスに登録されます。

1
FFrewin

.htaccessファイル内のリンクをリダイレクトできます。始まる行の下:

開始-カスタムリダイレクト

リダイレクトの追加を開始できます。彼らは次のようになります:

リダイレクト301/oldurl http://www.example.com/newurl

0

Joomlaルートディレクトリの.htaccessを編集してください:

.htaccessのサンプル

RewriteEngine On
RewriteCond %{HTTP_Host} ^site.com
RewriteRule (.*) http://www.site.com/$1 [R=301,L]

または、paramsを使用する場合-paramsでリダイレクトします。

site.com/blog?limitstart=0からsite.com/blog

RewriteCond %{QUERY_STRING} ^limitstart=0
RewriteRule ^blog http://site.com/blog? [R=301,L]
0
Aleksander

すべての迅速な対応に感謝します。私は.htaccessファイルでこれを修正しました:

RewriteEngine On
RewriteCond %{QUERY_STRING} ^option=com_content&view=article&id=46&Itemid=78$ [NC]
RewriteRule ^(index\.php)?$ /home/history? [L,R=301,NC]

誰もがこれらを助けるかもしれません。

0
akhil