HTML 페이지에서 리디렉션



11 Answers

나는 메타자바 스크립트 코드를 둘 다 사용할 것이고, 링크를 가지고있을 것이다.

<!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 리디렉션을 서버에 설치 한 경우 매우 쉽게 구성 할 수 있습니다.

Question

로드시 다른 페이지로 리디렉션하도록 기본 HTML 페이지를 설정할 수 있습니까?




이것은 내가 원했지만 잘라내어 붙여 넣기 좋은 깨끗한 발췌 문장에서 찾을 수없는 리디렉션 솔루션입니다.

이 스 니펫에는 여러 가지 장점이 있습니다.

  • 여러분은 여러분의 url에 대한 querystring 매개 변수를 붙잡고 보유 할 수 있습니다.
  • 원하지 않는 캐싱을 피하기 위해 링크를 unqiue로 만듭니다.
  • 사용자에게 이전 사이트 이름과 새 사이트 이름을 알릴 수 있습니다.
  • 설정 가능한 카운트 다운을 보여줍니다.
  • retains params와 같이 딥 링크 리디렉션에 사용할 수 있습니다.

사용하는 방법:

전체 사이트를 이전 한 경우 이전 서버에서 원래 사이트를 중지하고이 파일을 루트 폴더의 기본 index.html 파일로 다른 사이트를 만듭니다. 404 오류가이 index.html 페이지로 리디렉션되도록 사이트 설정을 편집하십시오. 이것은 하위 레벨 페이지 등으로 연결되는 이전 사이트에 액세스하는 모든 사용자를 포착합니다.

이제 시작 스크립트 태그로 이동하여 oldsite 및 newSite 웹 주소를 편집하고 필요에 따라 초 값을 변경하십시오.

웹 사이트를 저장하고 시작하십시오. 작업 완료 - 커피 시간.

<!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>




body 태그의 onload 이벤트 만 사용하십시오.

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



그냥 좋은 측정을 위해 :

<?php
header("Location: example@example.com", TRUE, 303);
exit;
?>

스크립트 위에 에코가 없는지 확인하십시오. 그렇지 않으면 무시됩니다. http://php.net/manual/en/function.header.php




어떤 경우에는 내 메타 헤더 태그가 리디렉션을 제대로 수행하지 못하는 jQuery Mobile 응용 프로그램에서 작업하는 동안 문제가 발생했습니다. jQuery Mobile 은 각 페이지마다 헤더를 자동으로 읽지 않으므로 JavaScript를 배치하면 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>

이것은 나를 위해 모든 경우에 효과가있는 것 같습니다.




현대 웹 표준을 따르기를 기대한다면 일반 HTML meta 리디렉션을 피해야합니다. 서버 측 코드를 만들 수없는 경우 대신 자바 스크립트 리디렉션을 선택해야합니다.

JS가 비활성화 된 브라우저를 지원하려면 HTML meta 리디렉션 줄을 noscript 요소에 추가하십시오. canonical 태그와 결합 된 noscript 중첩 메타 리디렉션은 검색 엔진 순위에도 도움이됩니다.

리디렉션 루프를 피하려면 location.replace () JavaScript 함수를 사용해야합니다.

적절한 클라이언트 측 URL 리디렉션 코드는 다음과 같습니다 (IE 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://.com/"/>
<noscript>
    <meta http-equiv="refresh" content="0;URL=https://.com/">
</noscript>
<!--[if lt IE 9]><script type="text/javascript">var IE_fix=true;</script><![endif]-->
<script type="text/javascript">
    var url = "https://.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 -->



index.html에서 home.html로 사용자를 리디렉션하는 스크립트를 사용합니다.

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






페이지가로드되면 init 함수가 시작되고 페이지가 리디렉션됩니다.

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

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



HTML 코드의 및 태그 사이에 다음 코드를 삽입하십시오.

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

위의 HTML 리디렉션 코드는 방문자를 다른 웹 페이지로 즉시 리디렉션합니다. content="0; 은 리디렉션 전에 브라우저가 대기하는 시간 (초)으로 변경할 수 있습니다.




나는 또한 귀하의 SEO 사람들을 돕기 위해 정식 링크를 추가 할 것입니다 :

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



<!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>


Related