etc./StackOverFlow

HTML 페이지에서 리디렉션

청렴결백한 만능 재주꾼 2022. 1. 4. 06:05
반응형

질문자 :chobo


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



다음을 사용해보십시오.

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

참고: 헤드 섹션에 배치합니다.

또한 이전 브라우저의 경우 올바르게 새로 고쳐지지 않는 경우 빠른 링크를 추가하는 경우:

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

다음과 같이 나타납니다.

리디렉션

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


Valerij

나는 metaJavaScript 코드를 모두 사용하고 만일을 대비하여 링크를 가질 것입니다.

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


Billy Moon

자바스크립트

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

메타 태그

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

amit_g

또한 SEO 사람들을 돕기 위해 표준 링크를 추가합니다.

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

lrkwz

헤드 내부 사이에 있는 다음 메타 태그는 브라우저에 리디렉션하도록 지시합니다.

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

초를 리디렉션하기 전에 대기할 시간(초)으로 바꾸고 URL을 리디렉션할 URL로 바꿉니다.

또는 JavaScript로 리디렉션할 수 있습니다. 페이지의 아무 곳에서나 스크립트 태그 내부에 다음을 배치합니다.

 window.location = "URL"

Peter Olson

이것은 모든 이전 답변과 .htaccess를 통해 HTTP 새로 고침 헤더를 사용하는 추가 솔루션의 요약입니다.

1. HTTP 새로 고침 헤더

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

 Header set Refresh "3"

이것은 PHP header() 함수를 사용하는 것과 동일한 "정적"입니다.

 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>

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>

자원


RafaSashi

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

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

리디렉션 루프를 피하려면 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 -->

Patartics Milán

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


Alex K

META "리디렉션"을 사용할 수 있습니다.

 <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 를 사용하는 것이 좋습니다.


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>

kkk

HTML 코드의 <HEAD> 및 </HEAD> 태그 사이에 다음 코드를 삽입합니다.

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

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


Muhammad Saqib

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

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

Sebi

jQuery Mobile 애플리케이션으로 작업하는 동안 문제를 발견했습니다. 어떤 경우에는 Meta 헤더 태그가 제대로 리디렉션되지 않습니다. 복잡성). 이 경우 가장 쉬운 해결책은 다음과 같이 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>

이것은 나를 위해 모든 경우에 작동하는 것 같습니다.


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>

P. BANERJEE

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

PHP의 경우:

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

Vô Vị

사용자를 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>

Zolfaghari

자바스크립트를 사용해야 합니다. 헤드 태그에 다음 코드를 삽입합니다.

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

kriscross07

좋은 측정을 위해:

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

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


Edward

body 태그의 onload 이벤트를 사용하기만 하면 됩니다.

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

pat capozzi

5초 지연을 위한 면도기 엔진:

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

JoshYates1980

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

PoM

이를 위해 JavaScript 코드가 필요하지 않습니다. HTML 페이지 <head> 섹션에 다음과 같이 작성합니다.

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

페이지가 0초에 로드되는 즉시 페이지로 이동할 수 있습니다.


Yash Jain

내가 이해하는 한 이 질문에 대해 지금까지 본 모든 방법은 역사에 이전 위치를 추가하는 것 같습니다. 페이지를 리디렉션하지만 기록에 이전 위치가 없는 경우 replace 메서드를 사용합니다.

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

Paul Ogilvie

이것은 내가 원했지만 잘라내기 및 붙여넣기에 좋은 깨끗한 스니펫에서 찾을 수 없는 모든 것이 포함된 리디렉션 솔루션입니다.

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

  • 사람들이 URL에 가지고 있는 쿼리스트링 매개변수를 포착하고 유지할 수 있습니다.
  • 원치 않는 캐싱을 피하기 위해 링크를 unqiue로 만듭니다.
  • 사용자에게 이전 및 새 사이트 이름을 알릴 수 있습니다.
  • 설정 가능한 카운트다운을 보여줍니다.
  • 매개변수를 유지하므로 딥 링크 리디렉션에 사용할 수 있습니다.

사용하는 방법:

전체 사이트를 마이그레이션한 경우 이전 서버에서 원래 사이트를 중지하고 이 파일을 루트 폴더의 기본 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>


Vanquished Wombat

당신은 자바 스크립트에서 그것을 할 수 있습니다 :

 location = "url";

object-Object

출처 : http:www.stackoverflow.com/questions/5411538/redirect-from-an-html-page

반응형