IT

로드 시 HTML 페이지를 다른 페이지로 리디렉션하는 방법

itgroup 2023. 5. 8. 22:05
반응형

로드 시 HTML 페이지를 다른 페이지로 리디렉션하는 방법

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

사용해 보십시오.

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

고참: 에배니다합에 .<head>부분.

이전 브라우저의 경우에도 올바르게 새로 고쳐지지 않을 경우 빠른 링크를 추가할 수 있습니다.

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

로 표시됩니다.

리디렉션

이렇게 하면 추가로 클릭하여 원하는 위치로 이동할 수 있습니다.

메타코드와 자바스크립트 코드를 모두 사용할 것이며, 만약을 위해 링크가 있을 것입니다.

<!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 상태 코드를 보내주시기 바랍니다.이 작업은 다음을 통해 쉽게 수행할 수 있습니다..htaccessApache를 사용하거나 WordPress를 사용하는 수많은 플러그인을 통해 파일을 저장할 수 있습니다.모든 주요 콘텐츠 관리 시스템을 위한 플러그인도 있을 것이라고 확신합니다.또한 서버에 301개 리디렉션이 설치되어 있는 경우 cPanel은 매우 쉽게 구성할 수 있습니다.

자바스크립트

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

메타태그

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

또한 귀하의 SEO 직원들을 돕기 위해 표준 링크를 추가하겠습니다.

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

이전의 모든 답변과 .htaccess를 통한 HTTP Refresh Header를 사용한 추가 솔루션의 합계입니다.

  1. HTTP 새로 고침 헤더

    우선 .htaccess를 사용하여 다음과 같은 새로 고침 헤더를 설정할 수 있습니다.

    Header set Refresh "3"
    

    은 정입다사것는같다과 "적니은"를 하는 것과 입니다.header()PHP의 함수

    header("refresh: 3;");
    

    이 솔루션이 모든 브라우저에서 지원되는 것은 아닙니다.

  2. 자바스크립트

    대체 URL을 사용할 경우:

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

    대체 URL이 없는 경우:

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

    window객체:

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

자원.

최신 웹 표준을 따르려면 일반 HTML 메타 리디렉션을 피해야 합니다.서버 측 코드를 작성할 수 없는 경우, 대신 JavaScript 리디렉션을 선택해야 합니다.

JavaScript를 하지 않는 줄을 JavaScript 사함브라우저를려면하HTML 을션에추에 합니다.noscript원소의noscript meta 와 된 meta redirectcanonical태그는 당신의 검색 엔진 순위에도 도움이 될 것입니다.

리디렉션 루프를 방지하려면 다음을 사용해야 합니다.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 -->

헤드 내부 사이에 배치된 다음 메타 태그는 브라우저에 리디렉션을 지시합니다.

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

seconds는 리디렉션될 때까지 대기할 시간(초)으로 대체하고 URL은 리디렉션할 URL로 대체합니다.

또는 JavaScript로 리디렉션할 수 있습니다.페이지의 임의의 위치에 있는 스크립트 태그 안에 다음을 배치합니다.

window.location = "URL"

301 리다이렉트를 설정하는 것이 좋습니다.Google의 웹 마스터 도구 문서 301의 리디렉션을 참조하십시오.

메타 "리다이렉트"를 사용할 수 있습니다.

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

또는 JavaScript 리디렉션(모든 사용자가 JavaScript를 사용할 수 있는 것은 아니므로 항상 백업 솔루션을 준비하십시오.)

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

하지만 옵션이 있다면 mod_rewrite를 사용하는 것이 좋습니다.

페이지가 로드되는 즉시,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 코드의 <HEAD> 태그와 </HEAD> 태그 사이에 다음 코드를 넣습니다.

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

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

다음 코드를 입력합니다.<head>섹션:

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

jQuery Mobile 응용 프로그램을 사용하는 동안 문제를 발견했는데, 경우에 따라 메타 헤더 태그가 제대로 리디렉션되지 않습니다(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>

이것은 저에게 모든 경우에 효과가 있는 것 같습니다.

사용자를 index.html에서 로그인 페이지의 상대 URL로 리디렉션하는 스크립트를 사용합니다.

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

모든 유형의 페이지에서 작동하는 간단한 방법은 다음을 추가하는 것입니다.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>

HTTP 상태 코드 301 또는 302로 자동 리디렉션할 수 있습니다.

PHP의 경우:

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

JavaScript를 사용해야 합니다.다음 코드를 헤드 태그에 넣습니다.

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

본문 태그의 온로드 이벤트를 사용하면 됩니다.

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

5초 지연 시 레이저 엔진:

<meta http-equiv="Refresh"
         content="5; url=@Url.Action("Search", "Home", new { id = @Model.UniqueKey }))">
<!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>

단지 좋은 측정을 위해:

<?php
header("Location: http://example.com", true, 302);
exit;
?>

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

제가 이해하기로는 이 질문을 위해 지금까지 본 모든 방법들이 역사에 옛 위치를 추가하는 것 같습니다.지를리디이위없경는우치가전기를 합니다.replace방법:

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

이것은 제가 원하는 모든 것을 포함한 리디렉션 솔루션이지만 잘라내고 붙여넣을 멋진 깨끗한 조각을 찾을 수 없었습니다.

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

  • 사용자의 URL에 있는 쿼리 문자열 매개 변수를 캡처하고 유지할 수 있습니다.
  • 원치 않는 캐싱을 방지하기 위해 링크를 고유하게 만듭니다.
  • 사용자에게 이전 사이트 이름과 새 사이트 이름을 알릴 수 있습니다.
  • 설정 가능한 카운트다운을 표시합니다.
  • 매개 변수를 유지하기 위해 딥 링크 리디렉션에 사용할 수 있습니다.

사용 방법:

전체 사이트를 마이그레이션한 경우 이전 서버에서 원래 사이트를 중지하고 루트 폴더에 이 파일을 기본 index.html 파일로 다른 사이트를 생성합니다.404 오류가 이 index.html 페이지로 리디렉션되도록 사이트 설정을 편집합니다.이것은 하위 수준 페이지 등에 대한 링크로 이전 사이트에 액세스하는 모든 사용자를 붙잡습니다.

이제 시작 스크립트 태그로 이동하여 이전 사이트 및 새 사이트 웹 주소를 편집하고 필요에 따라 초 값을 변경합니다.

웹 사이트를 저장하고 시작합니다.커피 마실 시간입니다.

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

이를 위해 자바스크립트 코드가 필요하지 않습니다.다음 문서에 이 내용을 기록합니다.<head>HTML 페이지의 섹션:

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

페이지가 0초에 로드되면 바로 해당 페이지로 이동할 수 있습니다.

언급URL : https://stackoverflow.com/questions/5411538/how-to-redirect-one-html-page-to-another-on-load

반응형