私はApache2.0を実行していますが、JavaScriptまたはjQueryを使用して301リダイレクトを作成できるかどうか疑問に思っています。
指定した場所への<a></a>
タグがありhref
、そのリンクをクリックすると301リダイレクトを行うように求められます。
これはSEOのためのものであり、新しいページを作成したり、フォーム/送信を作成したりせずに、リンク内の同じページに301リダイレクトを実行する方法を見つけようとしています。
私はApache2.0を実行していますが、JavaScriptまたはjQueryを使用して301リダイレクトを作成できるかどうか疑問に思っています。
指定した場所への<a></a>
タグがありhref
、そのリンクをクリックすると301リダイレクトを行うように求められます。
これはSEOのためのものであり、新しいページを作成したり、フォーム/送信を作成したりせずに、リンク内の同じページに301リダイレクトを実行する方法を見つけようとしています。
これは古い質問であることは知っていますが、回答は、質問で提示されたSEO目的の301リダイレクトである主要な問題に実際には対処していません(そして、今日の回答は、質問が最初にあったときとはかなり異なる可能性があります尋ねて答えた)。
いいえ、クライアントから 301 リダイレクトできないという答えは技術的には正しいですが (さらに重要なことに)、必ずしもそうする必要はありません。真の 301 が望ましいですが、このようなことが不可能な場合 (または、ハッシュバン URL から従来の URL に戻す場合など) は、問題は、目標を達成する実行可能な代替手段があるかどうかです。
Search Engine Land は、 JavaScript に関する Google の機能の詳細なテストを行いました。これは、その記事からの関連する抜粋です。
- JavaScript リダイレクト
まず、一般的な JavaScript リダイレクトをテストし、URL の表現方法をさまざまに変えました。私たちが選んだ方法は window.location 関数です。2 つのテストが実行されました。テスト A には、window.location 関数に関連付けられた絶対 URL が含まれていました。テスト B では相対 URL を使用しました。
結果: Google はすぐにリダイレクトを追跡しました。インデックス作成の観点から、これらは 301 として解釈されました。つまり、最終状態の URL が Google のインデックスでリダイレクトされた URL を置き換えました。
その後のテストでは、信頼できるページを利用し、まったく同じコンテンツを持つサイトの新しいページへの JavaScript リダイレクトを実装しました。元の URL は、Google の人気のあるクエリの最初のページにランク付けされました。
結果: 予想どおり、リダイレクトの後に Google が続き、元のページはインデックスから削除されました。新しい URL はインデックスに登録され、同じクエリに対して同じ位置にすぐにランク付けされました。これは私たちを驚かせ、ランキングの観点からは、JavaScript リダイレクトが (時々) 恒久的な 301 リダイレクトとまったく同じように動作する可能性があることを示しているようです。
次回、クライアントがサイト移転のために JavaScript リダイレクトを実装することを希望する場合、「しないでください」と答える必要はないかもしれません。この関係では、ランキングシグナルの転送があるようです。この発見を裏付けるものは、Google のガイドラインからの引用です。
「JavaScript を使用してユーザーをリダイレクトすることは、正当な方法です。たとえば、ログインしたユーザーを内部ページにリダイレクトする場合、JavaScript を使用してリダイレクトできます。JavaScript やその他のリダイレクト方法を調べて、サイトが準拠していることを確認する場合サイトを移動する場合は 301 リダイレクトが最適ですが、ウェブサイトのサーバーにアクセスできない場合は、この目的で JavaScript リダイレクトを使用できます。」
要するにいいえ。
JavaScriptは完全にクライアント側で実行されます。301リダイレクトは、サーバーからの応答として送信されることになっています。つまり、サーバーのサポートなしではこれを行うことはできません。
301はサーバー応答コードです。jQueryから301リダイレクトを作成することはできません。
PHPから301を実行する必要があります。
301リダイレクトは永続的なリダイレクトであり、基本的にHTTPサーバーの応答です。JavaScript / jQueryは、クライアントで実行されるものです。2つの異なる世界。
代わりに、サーバーで実行できない場合は、実際に最終URLをhrefに入力できます。
または、現在のページをリダイレクトできるかどうかを尋ねている場合は、METAリダイレクトを使用するか、window.locationを変更することで可能です。
Apacheを使用している場合は、 mod_rewriteを使用して301リダイレクトを実行できます。