web-dev-qa-db-ja.com

HTMLページからリダイレクトする

ロード時に別のページにリダイレクトするための基本的なHTMLページを設定することは可能ですか?

1470
chobo

試してみてください。

<meta http-equiv="refresh" content="0; url=http://example.com/" />

注:ヘッド部に置いてください。

あなたがそれが正しく更新されない場合にあなたがクイックリンクを追加するならばさらに古いブラウザのために:

<p><a href="http://example.com/">Redirect</a></p>

として表示されます

リダイレクト

それでも、追加クリックでどこに行くのかを知ることができます。

2055
Valerij

meta JavaScriptコード の両方を使用し、念のためにリンクを設定します。

<!DOCTYPE HTML>
<html lang="en-US">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="refresh" content="0; url=http://example.com">
        <script type="text/javascript">
            window.location.href = "http://example.com"
        </script>
        <title>Page Redirection</title>
    </head>
    <body>
        <!-- Note: don't tell people to `click` the link, just tell them that it is a link. -->
        If you are not redirected automatically, follow this <a href='http://example.com'>link to example</a>.
    </body>
</html>

完全を期すために、可能であれば、サーバーリダイレクトを使用するのが最善の方法だと思うので、 301 ステータスコードを送信します。これは Apache を使った.htaccessファイルを通して、または WordPress を使った多数のプラグインを通して簡単に行えます。私はすべての主要なコンテンツ管理システム用のプラグインもあると確信しています。また、あなたがそれをあなたのサーバーにインストールしているならば、cPanelは301リダイレクトのための非常に簡単な設定をします。

1060
Billy Moon

JavaScript

<script type="text/javascript">
    window.location.href = "http://example.com";
</script>

メタタグ

<meta http-equiv="refresh" content="0;url=http://example.com">
117
amit_g

同じく あなたの _ seo _ /人を助けるために正規のリンクを追加します:

<link rel="canonical" href="http://www.example.com/product.php?item=swedish-fish"/>
39
lrkwz

これは、以前のすべての回答と、.htaccessによるHTTP Refresh Headerを使用した追加の解決策の合計です。

1. HTTP更新ヘッダー

まず最初に、.htaccessを使って、このようにリフレッシュヘッダを設定することができます。

Header set Refresh "3"

これは、_ php _header()関数を使用するのと同じ「静的」な意味です。

header("refresh: 3;");

このソリューションはすべてのブラウザでサポートされているわけではありません。

2. JavaScript

_ url _ の代わりに:

<script>
    setTimeout(function(){location.href="http://example.com/alternate_url.html"} , 3000);
</script>

代替URLがない場合

<script>
    setTimeout("location.reload(true);",timeoutPeriod);
</script>

JQueryを介して:

<script>
    window.location.reload(true);
</script>

3.メタリフレッシュ

JavaScriptとリダイレクトヘッダへの依存が望ましくない場合は、メタリフレッシュを使用できます。

代替URLの場合:

<meta http-equiv="Refresh" content="3; url=http://example.com/alternate_url.html">

代替URLがない場合

<meta http-equiv="Refresh" content="3">

<noscript>を使う:

<noscript>
    <meta http-equiv="refresh" content="3" />
</noscript>

オプションで

Billy Moonによって推奨されているように、何か問題が発生した場合に備えてリフレッシュリンクを提供することができます。

自動的にリダイレクトされない場合:<a href='http://example.com/alternat_url.html'>Click here</a>

リソース

28
RafaSashi

次のメタタグは、頭の内側に配置され、ブラウザにリダイレクトするよう指示します。

<meta http-equiv="Refresh" content="seconds; url=URL"> 

Secondsをリダイレクトするまでの秒数に置き換え、URLをリダイレクト先のURLに置き換えます。

あるいは、JavaScriptを使ってリダイレクトすることもできます。これをスクリプトタグの内側のページの任意の場所に配置します。

window.location = "URL"
27
Peter Olson

301リダイレクト を設定することをお勧めします。 Googleのウェブマスターツールの記事301リダイレクトを参照してください。

26
Alex K

最新のWeb標準に従うことを楽しみにしている場合は、単純なHTMLメタリダイレクトを避けるべきです。サーバーサイドコードを作成できない場合は、代わりに JavaScript redirect を選択してください。

JavaScriptが無効なブラウザをサポートするには、HTMLメタリダイレクト行をnoscript要素に追加します。 noscriptタグと組み合わせたcanonicalネストメタリダイレクトは、検索エンジンのランキングにも役立ちます。

リダイレクトループを避けたい場合は、location.replace() JavaScript関数を使うべきです。

適切なクライアントサイドの URLリダイレクト コードは次のようになります(Internet Explorer 8以下の修正を適用し、遅滞なく)。

<!-- Pleace this snippet right after opening the head tag to make it work properly -->

<!-- This code is licensed under GNU GPL v3 -->
<!-- You are allowed to freely copy, distribute and use this code, but removing author credit is strictly prohibited -->
<!-- Generated by http://insider.zone/tools/client-side-url-redirect-generator/ -->

<!-- REDIRECTING STARTS -->
<link rel="canonical" href="https://stackoverflow.com/"/>
<noscript>
    <meta http-equiv="refresh" content="0; URL=https://stackoverflow.com/">
</noscript>
<!--[if lt IE 9]><script type="text/javascript">var IE_fix=true;</script><![endif]-->
<script type="text/javascript">
    var url = "https://stackoverflow.com/";
    if(typeof IE_fix != "undefined") // IE8 and lower fix to pass the http referer
    {
        document.write("redirecting..."); // Don't remove this line or appendChild() will fail because it is called before document.onload to make the redirect as fast as possible. Nobody will see this text, it is only a tech fix.
        var referLink = document.createElement("a");
        referLink.href = url;
        document.body.appendChild(referLink);
        referLink.click();
    }
    else { window.location.replace(url); } // All other browsers
</script>
<!-- Credit goes to http://insider.zone/ -->
<!-- REDIRECTING ENDS -->
25

_ meta _ "redirect"を使うことができます。

<meta http-equiv="refresh" content="0; url=http://new.example.com/address" />

または JavaScript redirect(すべてのユーザーがJavaScriptを有効にしているわけではないので、常にバックアップソリューションを用意してください)

<script language="javascript">
  window.location = "http://new.example.com/address";
</script>

しかし、オプションがある場合は、 mod_rewrite を使用することをお勧めします。

17
Czechnology

ページがロードされるとすぐにinit関数が起動され、ページがリダイレクトされます。

<!DOCTYPE html>
<html>
    <head>
        <title>Example</title>
        <script>
            function init()
            {
               window.location.href = "www.wherever.com";
            }
        </script>
    </head>

    <body onload="init()">
    </body>
</html>
14
kkk

HTMLコードの<HEAD>タグと</HEAD>タグの間に次のコードを挿入します。

<meta HTTP-EQUIV="REFRESH" content="0; url=http://example.com/index.html">

上記のHTMLリダイレクトコードはあなたの訪問者を即座に別のウェブページにリダイレクトします。 content="0;は、リダイレクトする前にブラウザに待機させる秒数に変更できます。

10
Muhammad Saqib

次のコードを<head>セクションに入れます。

<meta http-equiv="refresh" content="0; url=http://address/">
9
Sebi

jQuery Mobile アプリケーションで作業中に問題が発生しました。場合によっては、Metaヘッダータグでリダイレクトが正しく実行されないことがあります(jQuery Mobileが各ページのヘッダーを自動的に読み取らないため、JavaScriptを配置しても効果がありません)複雑に包まない限り)この場合の最も簡単な解決策は、次のようにJavaScriptのリダイレクトを直接文書の本文に入れることです。

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <meta http-equiv="refresh" content="0;url=myURL" />
    </head>

    <body>
        <p>You are not logged in!</p>
        <script language="javascript">
            window.location = "myURL";
        </script>
    </body>
</html>

これは私にはどんな場合でもうまくいくようです。

9
Scotsman

すべての種類のページに有効な簡単な方法は、頭にmetaタグを追加することです。

<html>
    <head>
        ...
        <meta HTTP-EQUIV="REFRESH" content="seconds; url=your.full.url/path/filename">
        ...
    </head>
    <body>
        Don't put much content, just some text and an anchor.
        Actually, you will be redirected in N seconds (as specified in content attribute).
        That's all.
        ...
    </body>
</html>
8
P. BANERJEE

あなたはJavaScriptを使うべきです。 headタグに次のコードを追加してください。

<script type="text/javascript">
 window.location.assign("http://www.example.com")
</script>
7
kriscross07

HTTPステータスコード301または302で自動リダイレクトできます。

PHPの場合

<?php
    Header("HTTP/1.1 301 Moved Permanently");
    Header("Location: http://www.redirect-url.com");
?>
7
Vô Vị

ユーザーをindex.htmlからLogin Pageにリダイレクトするスクリプトを使用します。

<html>
  <head>
    <title>index.html</title>
  </head>
  <body onload="document.getElementById('lnkhome').click();">
    <a href="/Pages/Login.aspx" id="lnkhome">Go to Login Page<a>
  </body>
</html>
6
Zolfaghari

Bodyタグのonloadイベントを使うだけです:

<body onload="window.location = 'http://example.com/'">
6
pat capozzi

念のために:

<?php
header("Location: [email protected]", TRUE, 303);
exit;
?>

スクリプトの上にエコーがないことを確認してください。そうしないと無視されます。 http://php.net/manual/en/function.header.php

6
Edward
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>Redirect to a page</title>
    </head>
    <body onload="window.location.assign('http://example.com')">

    </body>
</html>
5

かみそりエンジン 5秒の遅れの間:

<meta http-equiv="Refresh"
         content="5; [email protected]("Search", "Home", new { id = @Model.UniqueKey }))">
5
JoshYates1980

これにはJavaScriptコードは必要ありません。これをHTMLページの<head>セクションに書いてください。

<meta http-equiv="refresh" content="0; url=example.com" />

ページが0秒にロードされるとすぐに、あなたはあなたのページに行くことができます。

4
Yash Jain

私が理解している限りでは、この質問に対してこれまで見てきたすべての方法は歴史に古い場所を加えているようです。ページをリダイレクトするには、履歴内の古い場所を使用しないようにするために、replaceメソッドを使用します。

<script>
    window.location.replace("http://example.com");
</script>
3
Paul Ogilvie

これは私が欲しがっていたがカット&ペーストするのにきれいなスニペットで見つけることができなかったすべてを備えたリダイレクトソリューションです。

このスニペットにはいくつかの利点があります。

  • あなたが彼らのURLに持っているどんなクエリ文字列paramsでもキャッチして保持することができます
  • 不要なキャッシュを回避するためにリンクを不透明にします
  • ユーザーに新旧のサイト名を知らせることができます
  • 設定可能なカウントダウンを示しています
  • paramsを保持するので、ディープリンクリダイレクトに使用できます。

使い方:

サイト全体を移行した場合は、古いサーバーで元のサイトを停止し、このファイルをデフォルトフォルダーのindex.htmlファイルとしてルートフォルダーに別のサイトを作成します。 404エラーがこのindex.htmlページにリダイレクトされるようにサイト設定を編集します。これは、サブレベルページへのリンクなどで古いサイトにアクセスした人を捕まえます。

今度は開始スクリプトタグに移動し、oldsiteおよびnewSiteのWebアドレスを編集して、必要に応じてsecondsの値を変更します。

Webサイトを保存して起動します。仕事は終わった - コーヒーの時間。

<!DOCTYPE html>
<html>
<head>
<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">
<META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">
<META HTTP-EQUIV="EXPIRES" CONTENT="Mon, 22 Jul 2002 11:12:01 GMT">
<style>
body { margin: 200px; font: 12pt helvetica; }
</style>

</head>
<body>

</body>
<script type="text/javascript">

// Edit these to suit your needs.
var oldsite = 'http://theoldsitename.com'
var newSite = "https://thenewsitename.com";
var seconds = 20;  // countdown delay.

var path = location.pathname;
var srch = location.search;
var uniq = Math.floor((Math.random() * 10000) + 1);
var newPath = newSite + path + (srch === '' ? "?" + uniq : srch + "&" + uniq); 


document.write ('<p>As part of hosting improvements, the system has been migrated from ' + oldsite + ' to</p>');
document.write ('<p><a href="' + newPath + '">' + newSite + '</a></p>');
document.write ('<p>Please take note of the new website address.</p>');
document.write ('<p>If you are not automatically redirected please click the link above to proceed.</p>');
document.write ('<p id="dvCountDown">You will be redirected after <span id = "lblCount"></span>&nbsp;seconds.</p>');

function DelayRedirect() {
    var dvCountDown = document.getElementById("dvCountDown");
    var lblCount = document.getElementById("lblCount");
    dvCountDown.style.display = "block";
    lblCount.innerHTML = seconds;
    setInterval(function () {
        seconds--;
        lblCount.innerHTML = seconds;
        if (seconds == 0) {
            dvCountDown.style.display = "none";
            window.location = newPath;
        }
    }, 1000);
}
DelayRedirect()

</script>
</html>
2

このコードを使用してください:

<meta http-equiv="refresh" content="0; url=https://google.com/" />

注意してください: それをheadタグに入れてください。

0
AmerllicA

あなたはJavaScriptでそれを行うことができます:

location = "url";
0
GameMaster1928