外部リンクの PHP リダイレクト。 遅延とカウントダウンタイマー付きのリダイレクト

この記事では、JavaScript location を使用してページからリダイレクトする方法を説明します。 予期しないリダイレクトは、全体的なエクスペリエンスに悪影響を与えるため、ユーザーの観点からは非常に迷惑であると考えられます。 たとえば、ユーザーがあなたのサイトにアクセスした直後に別のサイトにリダイレクトするとします。 また、タイマーで、またはユーザーが特定のアクションを実行した後に、外国のページに誘導した場合も同様です。 これにより、ユーザーはすぐにサイトから離れたくなるでしょう。

さらに、検索エンジンは、特にユーザーを誤解させる場合、リダイレクトを使用するリソースを好みません。 ただし、リダイレクトが役立つ場合もあります。 したがって、リダイレクトを使用するかどうかはユーザーの判断に委ねられます。

JavaScript リダイレクトメソッド

JavaScript では、ウィンドウの位置または位置オブジェクトは、現在の Web ページ (ドキュメント) の位置に関する情報を取得したり、それを変更したりするために使用されます。 以下は、JavaScript リダイレクトの実装に使用できるメソッドのリストです。

// 現在のウィンドウの新しい位置を設定します。 window.location = "http://www.example.com"; // 現在のウィンドウに新しいハイパーリンク (URL) を設定します。 window.location.href = "http://www.example.com"; // 現在のウィンドウに新しい URL を割り当てます。 window.location.assign("http://www.example.com"); // 現在のウィンドウの位置を新しいウィンドウに置き換えます。 window.location.replace("http://www.example.com"); // 現在のウィンドウ自体の位置を設定します。 self.location = "http://www.example.com"; // 現在のウィンドウを基準にして最上位のウィンドウの位置を設定します。 top.location = "http://www.example.com";

上記の JavaScript コード行は同様の処理を行いますが、若干の違いがあります。 たとえば、iframe 要素内で top.location リダイレクトを使用すると、メイン ウィンドウに強制的にリダイレクトされます。 もう 1 つ留意すべき点: location.replace() は現在のドキュメントを置き換え、履歴から削除し、ブラウザの [戻る] ボタンからはアクセスできなくなります。

window.location.href = "http://www.example.com";

window.location の仕組みについて詳しくは、このページをご覧ください。

JavaScript リダイレクト: ロード時にリダイレクト

サイトを開いた直後にユーザーを別の Web サイトにリダイレクトするには、ページの上部の .html 内に次のコードを使用します。 または、別の .js ファイルを使用している場合は、そのファイルに次のコードを配置し、必ずページの先頭でそれを参照してください。

window.location.href = "http://www.example.com";

サンプルの URL をリダイレクト先のアドレスに置き換えるだけです。 このタイプのリダイレクトでは、訪問者は Web ページをまったく見ることができず、即座にターゲット アドレスにリダイレクトされることに注意してください。

JavaScript リダイレクト: 一定時間後にリダイレクト

一定の時間が経過した後にユーザーを別のサイトにリダイレクトするには、次のコードを使用できます。

setTimeout(function() ( window.location.href = "http://www.example.com"; ), 3000);

上記の JavaScript の location href 関数は、ページが完全に読み込まれてから 3 秒後にユーザーをページからリダイレクトします。 ニーズに合わせて 3000 (ミリ秒単位で 3 x 1000) の値を変更できます。

JavaScript リダイレクト: イベントまたはユーザーアクションの後にページからリダイレクトします。

場合によっては、特定のイベントまたはアクションの後にユーザーを別のページに移動する必要があります。 このような場合は、条件テストを使用するか、要素にイベントを割り当ててリダイレクトを実行できます。 次の 2 つの例を考えてみましょう。

// 条件が true かどうかを確認してリダイレクトします。 if (...) ( window.location.href = "http://www.example.com"; )

上記のドキュメントの場所の href JavaScript コードは、条件が true の場合にリダイレクトを実行します。

// onclick イベントは #button 要素に割り当てられます。 document.getElementById("button").onclick = function() ( window.location.href = "http://www.example.com"; );

上記のコードは、ユーザーが #button 要素をクリックするとリダイレクトを実行します。

これが JavaScript でのリダイレクトの仕組みです。 これらの例が Web ページのリダイレクトを整理する際に役立つことを願っています。

リダイレクトまたは別のページへのリダイレクトの例。

HTML でリダイレクト // 5 秒後にページを更新します: // 5 秒後に https://www.google.com にリダイレクトします: // すぐに https://www.google.com にリダイレクトします: JavaScript でリダイレクトします

replace() メソッドを使用すると、ブラウザの HTML ページの表示履歴 (履歴) に置換が反映されないように、あるページを別のページに置き換えることができます。

Location.replace("https://www.google.com"); document.location.replace("https://www.google.com");

reload() メソッドは、ツールバーのリロード ボタンをクリックしたときのブラウザの動作を完全にシミュレートします。 引数なしでメソッドを呼び出すか、 true に設定すると、ブラウザはドキュメントの最終変更時刻をチェックし、キャッシュ (ドキュメントが変更されていない場合) またはサーバーからドキュメントをロードします。 この動作は、リロード ボタンをクリックすることに対応します。 引数として false を指定すると、ブラウザは現在のドキュメントをサーバーから再読み込みします。 この動作は、リロードとキーボードのシフト ボタン (リロード+シフト) を同時に押すことに対応します。

Window.location.reload("https://www.google.com");

次の例も Google にリダイレクトされます。

場所="https://www.google.com"; document.location.href="https://www.google.com";

setTimeout 関数を使用すると、リダイレクトを実行する前にリダイレクト遅延を実装できます (この例では 5 秒)。

SetTimeout("location="https://www.google.com";", 5000);

タイマーを使用したリダイレクトの簡単な例:

varsec=10; function Sec() ( document.getElementById("sec").innerHTML=sec; sec--; if(sec==1) ( location.replace("https://www.google.com") ) setTimeout(" Sec()",1000); ) Sec();

10 秒待つか、次のリンクをクリックしてください。 https://www.google.com

PHP でのリダイレクト

PHP には header() 関数があり、標準ヘッダーを置き換えるだけでなく、新しいヘッダーを追加することもできます。

構文:

// string は、追加する必要があるヘッダーの完全な形式の文字列です (末尾の改行 "\n" は除きます) // replace は、同じ名前のヘッダーを置き換える (true) か、最後に追加するかを指定します ( false) // http_response_code は http レスポンス コード (300、301、302 など) を指定します。 void header (string string [, bool replace = true [, int http_response_code]]);

使用例:

Header("更新: 0; url=/error404.html"); // 即座に (遅延せずに) エラー ページにリダイレクトします header("Refresh: 5; url=https://www.google.com/"); // ページが読み込まれてから 5 秒後に Rambler メイン ページにリダイレクトします。 header("場所: /", true, 307); // 307 リダイレクトを使用してサイトのメイン ページにリダイレクトします。 header("場所: /article/page.htm", true, 303); // 303 リダイレクトを使用して、サイトの内部ページにリダイレクトします。 header("場所: http://google.ru/search?q=redirect"); // 302 リダイレクトを使用して、リダイレクトという単語の Google 検索にリダイレクトします (リダイレクト コードを指定せずに Location を使用する場合、デフォルトで 302 が使用されます)。 header("場所: http://yandex.ru/yandsearch?text=redirect", true, 301); // Yandex でリダイレクトという単語を検索するために 301 リダイレクトを使用してリダイレクトを作成します。

HTML を PHP にリダイレクトします。

リダイレクション

ここで、sleep() パラメータにはリダイレクトの遅延を含めることができます。

このファイルはサイトのルート ディレクトリ (WordPress ブログの場合は、wp-config.php ファイルがある場所) からアップロードします。 その後、次のように php リダイレクトに必要なリンクを入力します。

http://your_site/go.php?url=http://どこへ行きますか

この場合、紹介リンクを非表示にすることに問題がないことをご理解ください。 したがって、go.php ファイル内のコードを次のようにわずかに変更するのが合理的です。

この場合、コード内の実際のテキストの代わりに、参照リンクを挿入します。 ただし、1 つの PHP ファイルでは、1 つの参照に対してのみリダイレクトを設定できます。 リンクがあるため、gosape.php、goggl.php などの複数のファイルを交換ごとに個別に作成する必要があります。 同時に、robots.txt go.php で PHP リダイレクトを使用してファイルのインデックス作成を閉じることをお勧めします。

ユーザーエージェント : * 許可しない : /go.php 許可しない : /gosape.php 許可しない : /goggl.php

ユーザーエージェント: * 許可しない: /go.php 許可しない: /gosape.php 許可しない: /goggl.php

あるいは、ディレクトリ全体のインデックス作成を閉じて、そこにすべての php ファイルを追加する方が簡単です。

htaccess経由でリンクをリダイレクトする

リンクのリダイレクトは、PHP ファイルを使用するだけでなく、.htaccess ファイルに対応するリダイレクト ディレクティブを記述することによっても構成できます。 これはサイトのルート ディレクトリにあります。 さらに、mod_rewrite モジュールがホスティング上で有効になっている必要があります (ほとんどの場合、有効になっています)。 コマンドの構文は次のとおりです。

リダイレクト URL-パス URL

  • status: オプションのフィールド、戻りコードを定義します、有効な値:
    • 永続的 (301 - ドキュメントは永続的に移動されました)
    • temp (302 - ドキュメントは一時的に移動されました)
    • 他のものを見る (303 - 別のものを見る)
    • 消えた (410 - 削除されました)
  • URL パス: ダミーリンク。
  • URL: 本物のリンク
リダイレクト /gosape の RewriteEngine http://www.sape.ru/12345.php

リダイレクト /gosape の RewriteEngine http://www.sape.ru/12345.php

したがって、リンク http://mysite.ru/gosape をクリックすると、ユーザーは紹介リンク付きの sape Web サイトに移動します。 この記事の作成者にその方法を感謝します。

2 段階の PHP リダイレクト リンク

ブログの 1 つで、外部リンクを非表示にする方法に関する別のブログを見つけました。 これを行うには、サイトのルート ディレクトリにフォルダー (たとえば、pages という名前) を作成し、そこに 3 つのファイルを配置します。

1.linkslist.php – リダイレクト用の外部 (参照) リンクの配列を保存します。そのコードは次のとおりです。

2. redirect.php – リンクを分析してリダイレクトを実行するための php スクリプト:

3. .htaccess ファイル – redirect.php スクリプトにリクエストを送信します。

オプション +FollowSymlinks RewriteEngine On RewriteRule ^get/(.+) /pages/redirect.php/$1 [L]

この後、ブログまたは Web サイトのページに http://site_name/pages/get/page1.html のようなリンクを配置できます。ここで、page1.html は linkslist.php ファイルで定義されており、実際のリンクに対応します。ユーザーはリダイレクトされます。 このメソッドの作成者は、リンクを処理するプロセス全体を次の図に配置しました。

基本的に、私は個人的に最後の方法が最も気に入りました。これをブログで公開した Vladimir Statsenko に特に感謝します。 すべてのリダイレクト リンクを 1 つのファイルに非常にシンプルかつ視覚的な形式で配置できるのは非常に便利です。

もちろん、プラグインを使用して紹介リンクを非表示にすることもできますが、私はできればサードパーティのアプリケーションを使用せずに、単純な方法を好む傾向があります。 それでも、今後もいくつかの例を検討していきます。

紹介リンクを非表示にするためにどのような方法を使用しますか?またその理由は何ですか?

追伸 ガード。 WebPromo 会社は、サイトの検索エンジン プロモーションと、Google および Yandex でのサイトのプロモーションを提供します。
運転免許剥奪を防ぐ方法がわからない場合は、自動車弁護士に無料相談することをお勧めします。
Lensmaster は、キエフとウクライナ全土に配送できるコンタクト レンズのオンライン ストアです。

リダイレクトは、ユーザーをあるアドレスから別のアドレスに自動的にリダイレクトすることです。 つまり、ある人はあるサイトにアクセスしても、最終的にはまったく別のサイト (またはあるサイトの別のページ) にアクセスしてしまいます。 これはよく見たことがあるかと思います。 場合によっては、リダイレクトが遅延して実行されることがあります。 一般に、このトピックは非常に重要なので、この記事で説明します。

一般的に、Document オブジェクトのプロパティである Location オブジェクトについて説明します。 Location オブジェクトには href プロパティがあり、JavaScript へのリダイレクトを実装するために使用されます。 このプロパティは読み取りと書き込みの両方が可能です。 まず、読んでみましょう:

Document.write(document.location.href);

その結果、スクリプトの完全なアドレスが表示されます。

次に、JavaScript への簡単なリダイレクトを作成してみましょう。

Document.location.href = "http://サイト";

したがって、このスクリプトを実行するすべてのユーザーは自動的にサイト「http://site」に移動します。

次に、非常に頻繁に実装される古典的なタスクを実行してみましょう。 Web サイト http://a.ru があるとします。 次に、Web サイト用に新しいドメインを購入し、そのアドレスは http://b.ru になりました。 そして、すべての訪問者を http://a.ru から新しい http://b.ru に移動してもらいたいと考えています。 さらに、サイトに新しいアドレスがあることを知らせたいと考えています。 この状況はよく知られていますか? したがって、これは遅延のあるリダイレクトを使用して実装されます。


var 遅延 = 5000;
setTimeout("document.location.href="http://b.ru"", 遅延);

当社の Web サイトのアドレスは http://b.ru になりました。 5 秒後にリダイレクトされます。 これが起こらない場合は、http://b.ru にアクセスしてください。

まず、ユーザーにメッセージが表示され、5 秒後に新しいアドレスに移動します。 ユーザーが突然 JavaScript を無効にした場合でも、リンクをクリックするだけで自分でナビゲートできるようになります。