웹마스터 팁
로그인풀림방지 - 자동 www 붙이는 다른 방법
2008.03.28 22:20
아시는 분들 많겠지만, 접속 주소의 www 유무에 따라서 페이지 이동시 로그인이 풀리는 경우가 있곤 합니다.
(www 없는 주소로 접속해서 로그인을 한 후, www 있는 페이지로 접속하면 로그인이 풀리는 현상 - 반대의 경우도 마찬가지)
그래서 검색을 하다가 '똑띠'님의 팁 중에서 [www가 붙는 도메인과 그렇지 않은 도메인 하나로 처리하기] 라는 팁으로 이 문제를
해결했었지요. 그 후론 www 유무에 관계없이 접속하면 무조건 www 가 자동으로 붙게되어서 참 편리했습니다.
(이 자리를 빌어 똑띠님께 다시 한 번 감사의 말씀을 전합니다. ^^)
그러던중 SCM 로그관리를 검색하다가 새로운 문제 하나를 알게되었는데요. (사실은 문제랄 것 까지는 없지만...)
저는 주로 게시물들의 RSS 전문 공개를 해두는 편이랍니다. 그래서 구글이나 야후 등에서 게시물이 검색될 수 있도록 말이죠.
그런데 문제는 게시물이 검색될 때의 링크 주소가 항상 www 붙은 형태는 아니라는 것입니다. 이게 왜 문제인지 예를 들어보면요.
만일 누군가 검색을 하다가 제 사이트의 게시물이 검색 되어서 읽어보려고 클릭하면 바로 그 글이 떠야하지 않겠습니까?
그런데 만일 검색된 링크의 주소에 www 가 없다면 자동으로 www 를 붙이면서 그 글이 아닌 메인페이지로 접속이 되어버립니다.
그럼 그 누군가는 순간 당황스러울 수밖에 있겠죠. 정작 보려던 글은 나오지 않고, 사이트 메인페이지가 나타났으니 말입니다.
그 글을 보려면, 메인화면에서 다시 그 글을 찾기위해 검색을 해야한다는 말인데... 이렇게 할 사람은 거의 없겠죠.
그래서 SCM 로그관리를 살펴보니, 검색로봇이 긁어간 주소들 중에 www 없이 링크되어 있는 곳이 꽤 많더군요.
왜 그런지 잘 모르겠네요. 어떤 게시물은 www 와 함께 링크되어 있고, 어떤 것은 www 없이 링크되어 있었습니다.
여하튼 이래선 안되겠다 싶어 일단 다시 똑띠님의 팁을 해제하고 다른 방법들을 알아봤는데요.
물론 가장 좋은 건 회원분들께서 '로그인 유지' 기능을 사용하시는거죠. 그러면 www 유무에 관계없이 늘 로그인이 유지되니까요.
그런데 신규회원의 경우나 그 기능을 이용하지 않으시는 분들은 여전히 www 없이 접속하셨다가 로그인 풀림으로 문제를 겪곤 하셨죠.
그래서 인터넷을 한참을 돌아다니다가 결국 한 가지 팁을 찾아서 적용시켜보았더니 문제가 해결되었습니다.
방법은 간단합니다. 레이아웃 편집에서 아래 스크립트를 적당한 곳에 붙여주기만 하면 됩니다.
적당한 곳이 애매하신 분은 로그인창에 보이는 '편집' 누르신 후 레이아웃 편집창 가장 상단에 붙여주시면 되겠습니다. ^^
<script language="JavaScript" type="text/javascript">
var host = location.host.toLowerCase();
var currentAddress = location.href;
if (host.indexOf("www") == -1)
{
currentAddress = currentAddress.replace("//","//www.");
location.href = currentAddress;
}
</script>
위 스크립트가 삽입된 레이아웃은 www 없이 접속을 해도 자동으로 www 로 변경이 됩니다.
물론 서브 메뉴의 주소에도 www 가 자동으로 붙으면서 검색사이트 링크에 www 없는 경우에도 제 페이지를 보여줍니다.
물론 고수님들 보시기엔 정말 하찮은 팁일지도 모르겠고, 더 좋은 방법이 있을지도 모르겠으나 저같은 초보에겐 참 기쁜일이었답니다.
혹시 저처럼 www 유무로 인한 로그인풀림 문제로 고민하시는 분이 계시다면 위 글이 도움이 될 수 있기를 바랍니다. ^^
from ... RainSky
댓글 23
-
주하니
2008.03.29 18:46
-
베니
2008.03.29 21:11
헙... 이건 RewriteMod 로 하시는 방법도 있는데 제가 다음번에 올려놓도록 하겠습니다. -
RainSky
2008.03.29 21:58
그래주시면 고맙겠습니다. 하나하나 배우는 중인데, 쉽진 않지만 재미와 보람이 있습니다. ^^ -
Capyou
2008.03.30 21:38
좋은팁감사합니다^^
-
빽짱구
2008.04.02 14:49
http://www.webmini.net/zeroboard/17467
저는 이방법으로 사용중입니다. -
하나로45
2008.04.07 00:15
좋은팁 감사합니다.
다만 제경우엔 한가지 문제가 발생하는 듯 해서 다른분들의 견해도 들어봅니다.
홈페이지 로고를 클릭했을 경우에 홈(메인)으로 돌아와야 하는데....
위의 팁을 적용후 로고(홈으로) 클릭시 반응이 없어집니다.
참고 : 똑띠님 2차 레이아웃을 사용하고 있으며, 레이아웃을 대메뉴별로 여러개로 분리해서 사용중입니다. -
kalcapt
2008.05.04 10:28
매우 감사합니다^^*
-
st.june
2011.01.23 20:20
지금까지 www 방법 중 가장 나은 것 같아요! 감사합니다 ^^ -
daeric
2011.05.26 09:36
'똑띠'님의 팁과 이팁 두개 모두를 사용하면 에러가 생기나요? -
손주사랑
2011.11.13 17:10
진짜좋군요 오늘 적용해봤는데 한번도 안풀리네요 좋은팁 감사합니다^*^
-
궁굼자
2013.07.09 18:04
좋은 팁 감사합니다
-
착한부산남자
2013.08.29 14:19
이 방법을 사용했는데 IE에서는 로그아웃이 되는데 크롬에서는 로그아웃이 안되네요 ㅠ
-
착한악마
2013.08.29 14:39
-
착한부산남자
2013.09.09 22:27
타이틀과 www도메인 함께 사용할 수 있는 애드온 사용합니다 -
착한악마
2013.09.10 15:25
헉...1타2피가 있나요??/
-
착한부산남자
2013.09.10 23:35
-
samsick92
2013.08.31 21:28
오...감사합니다
-
컴퓨터매니아
2013.09.01 01:24
.htaccess RewriteRule을 쓰는 방법이 더 좋습니다.
http://www.xpressengine.com/qna/22285840#comment_22285867
-
착한부산남자
2013.09.10 23:39
카페24에서는 동작 안합니다.
아래 애드온을 사용하는게 좋아요.
http://www.xpressengine.com/index.php?mid=download&category_srl=18322925&parent_srl=18322917&page=3&package_srl=21189057
-
컴퓨터매니아
2013.09.11 04:34
동작 합니다.
무슨 말씀을 하시는지 모르겠네요.
+지나친 애드온 이용은 코어 속도를 저하시킬 수 있습니다.
-
착한부산남자
2013.09.11 15:27
아.. 새벽에 잘 못 수정했나봅니다. ㅠ
죄송합니다.
지금은 잘되네요 ㅎ
-
컴퓨터매니아
2013.09.12 04:42
.htaccess는 오타가 하나라도 있으면 HTTP 500 Internal Server Error가 납니다.ㅠㅠ
-
엘카
2013.09.11 02:34
http://www.xpressengine.com/index.php?mid=download&category_srl=18322925&search_keyword=www&package_srl=19804189
www 애드온 제작자입니다.
- 특정 도메인을 붙이는데 가장 좋은 방법은, rewrite rule 에 추가하는 것입니다.
단점은 서버설정이나 core 수정이 필요합니다.. 초보자용은 아니죠. - 두 번째로, xe 프로그램(애드온)을 설치하는 방법이 있겠습니다.
적용이 편리한 장점이 있지만 암만 가벼운 코드라도 php 코드가 추가되는건 반가운 일은 아닙니다.
숙련자는 1번을 선택하겠지만, 대개 경우 2번이 좋습니다.그럼 '어떤 형태로' 작동하는 애드온을 선택할 것이냐.. 라는 의문이 있습니다.대개 아래 3가지 작동 방식이 있습니다.- php header
- html meta
- javascript
그리고 염두에 두어야 할 부분은 2가지가 있습니다.- SEO: 바뀐 도메인을 검색엔진이 인지하는가?
- 최적화: 서버연산을 얼마나 적게 차지하는가?
첫 1번을 제외하고 가장 좋은 방법은..- 최대한 빨리 감지하고 (애드온으로 감지할 시 모듈 초기화가 제일 빠릅니다, 숙련자는 config.user.inc.php)
- 주소 변경을 알리는 meta+javascript 소스만 뿌려주고
- php header 로 redirect 지시하고
- 연산을 종료합니다.
www 애드온은 '1. 모듈 초기화' 시점에 감지하고 '3. php header'로 redirect 지시한 후 '4. 연산을 종료'합니다.반대로 말해서, 애드온을 만든 이유는 대개 애드온이 다음 두 가지 원리로 작동했기 때문입니다.- javascript로 제어하면 '1. SEO' 에 좋지 않고, 연산을 종료하지 않으면 '2. 최적화' 에도 좋지 않습니다.
- meta 태그로 제어할 시 '2. 최적화'에 좋지 않고 잘 감지해줄지 '찜찜한 느낌'입니다 -_-;;;;
요악하자면.. 어떤 것을 선택하든지 차이는 1%미만입니다! ㅋㅋㅋ - 특정 도메인을 붙이는데 가장 좋은 방법은, rewrite rule 에 추가하는 것입니다.
좋은 팁 감사합니다. ^^