리디렉션 할 때 주소창에 url 변경하지 않는 방법

자바스크립트로 리디렉션을 시킬 때 주소창에 표시되는 URL이 변하지 않고 페이지 내용만 바꾸는 방법에 대해 알아본다.

티스토리 블로그 2차주소 사용할 때 원래의 ㅁㅁㅁ.티스토리닷컴 주소로 접속 시 도메인 주소로 리디렉션 시키는 코드를 사용했었다. 그런데 이 코드를 조금 응용하면 URL 변경없이 넘기는 것도 가능하다.

원래의 티스토리 도메인 리디렉션 코드

<script type="text/javascript">
var url1 = '접속한 도메인 주소';
var url2 = '이동시킬 도메인 주소';
var online = document.URL;
if(online.match(url1)) document.location.href = online.replace(url1, url2);
</script>

간단히 각 문장에 대한 설명을 덧붙이면,

var는 변수를 지정하는 것이다. url1에 방문자가 처음 접속하는 주소를 저장하고, url2에 방문자를 이동시킬 목적지 주소를 저장한다. online이라는 변수에 현재의 URL 주소를 저장한다.

  • document.URL : 단순히 현재 웹페이지 주소를 읽기 전용으로 반환
  • document.location.href : 현재 문서의 URL을 반환하는 점은 같지만 새 URL을 할당하여 페이지를 이동시킬 수 있음

그 다음 조건문을 이용해서,

1) if(online.match(url1) : 현재 주소가 url1에 해당된다면

2) online.replace(url1, url2) : online을 url1에서 url2로 치환(replace)하고

3) document.location.href = : 그 값을 현재의 URL 주소인 document에 넣으라는 뜻이다.

location.href 이건 현재의 url 주소를 바꾸면서 리디렉션 시키는 명령어인데, location.replace를 이용하면 url 주소를 바꾸지 않고 리디렉션 할 수 있다.

URL 주소 변경 없이 리디렉션 하는 방법

<script type="text/javascript">
var url1 = '접속한 도메인 주소';
var url2 = '이동시킬 도메인 주소';
var online = document.URL;
if(online.match(url1)) location.replace(online.replace(url1, url2));
</script>

이렇게 코드를 변경하면 URL 주소 변경 없이 리디렉션 된다. 다른 부분은 다 똑같고 조건문으로 접속한 주소가 url1인 경우를 판별하는 부분까지도 같다. 어떻게 보내느냐만 차이가 있다.

online에 url1을 url2로 치환한 뒤, location.replace를 통해서 그 치환된 url2로 페이지를 곧바로 바꿔주는 식이다.

0 0 투표
Article Rating

0 Comments
Most Voted
Newest Oldest
Inline Feedbacks
댓글 모두 보기