サイト上のすべての非SEF URLを新しいSEF URLにリダイレクトしたいのですが、古いサイトと新しいサイトの記事のIDが異なります。古い非SEF URLの301リダイレクトを新しいSEF URLに適用する方法
古い非sef URLから新しい記事IDを持つ新しいSEFまで、少し面倒に聞こえます。一度にすべてを追跡するには変更が多すぎます。
古い記事IDを維持したか、少なくともこの移行を段階的に行った場合、たとえば、最初に古いページのSEF URLを有効にし、しばらくしてから、検索エンジンがインデックスを更新してから、次の手順に進むことが最善です。手順なので、sef urlをリダイレクトするだけで済みます(必要な場合)。
さて、それに対処する方法は異なります...
コアリダイレクトコンポーネント/プラグインがあり、SH404SEFのような拡張機能があり、役立つ可能性があるリダイレクトに使用できる.htaccessがあります。
問題は、大量の記事がある場合、すべてのリダイレクトを作成するのは面倒です。また、記事に競合するIDがあり、特定のIDを持つ古い非SEF URLを別の記事の新しいSEF URLにリダイレクトする場合-新しい記事の1つが持つ可能性にどのように対処する予定ですか?リダイレクトしたものと同じIDですか?
別の可能性としては、現状のままにして、404ページを作成して、ページが移動したことを全員に通知し、Googleで新しいサイトマップをプッシュすると、すぐに新しいURLがインデックスに登録されます。
.htaccessファイル内のリンクをリダイレクトできます。始まる行の下:
開始-カスタムリダイレクト
リダイレクトの追加を開始できます。彼らは次のようになります:
リダイレクト301/oldurl http://www.example.com/newurl
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]
すべての迅速な対応に感謝します。私は.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]
誰もがこれらを助けるかもしれません。