본문 바로가기

팬시,간편 URL

web/etc by 낼스 2014. 5. 7.
1. 간편 URL
    간편 URL(영어: clean URL, fancy URL)은 질의어 없이, 경로만 가진 간단한 구조의 URL을 말한다.
    사용자 친화적 URL(영어: user-friendly URLs), 검색엔진 친화적 URL(영어: search engine friendly url) 또는
    간단히 친화적 URL이라고도 한다. 깔끔하지 않은 URL에 비해 기억하기 쉽고, 입력하기 쉽다는 장점이 있다.
    ( http://ko.wikipedia.org/wiki/%EA%B0%84%ED%8E%B8_URL#.EC.98.88.EC.8B.9C )
    참고 :
https://www.google.co.kr/?gws_rd=cr&ei=Ueq4UunCJor4lAXO_oH4CQ#newwindow=1&q=.htaccess+%EA%B0%84%ED%8E%B8+url&safe=off


    팬시(Fancy) URL, 시멘틱 URL, 뷰티플 URL등으로 불린다.     
    GET방식의 쿼리스트링 URL표기를 단순화시켜 표시하는 방법이다.
2. 긴주소를 짧게하는 서비스 사이트
    https://bitly.com/
    http://goo.gl
    http://tw.gs

# 그누보드 rewrite rule 적용 ( .htaccess )
    http://jmnote.com/wiki/%EA%B7%B8%EB%88%84%EB%B3%B4%EB%93%9C_%EA%B0%84%ED%8E%B8_URL_%EC%A0%81%EC%9A%A9

2. 팬시 URL 이점

l  URL의 단순 명료함
유저가 GET 방식의 복잡한 쿼리 스트링을 외워서 원하는 컨텐츠에 접근하기란 불가능에 가깝다고 볼 수 있습니다.

l  검색 엔진에서의 우선순위
대부분의 검색 엔진은 복잡한 쿼리스트링이 표시된 웹 페이지보다 fancy url 의 우선순위가 높다고 합니다.
즉, 같은 컨텐츠의 내용이라도 쿼리 스트링을 포함한 url보다 fancy url이 더 상위에 노출됩니다.



    Google url shorter

3. 구현
    404에러일 경우 특정 페이지로 리디렉션하여 서버에서 처리를 하게 한다
    주소창의 주소유지를 위해 frameset 이나 iframe 등으로 처리하여 웹 페이지에 보여준다

인터넷하다보면 긴 URL(인터넷주소)를 줄여야 할 경우가 생깁니다.
예를 들어 트위터같이 글자제한이 있는 게시물에 주소링크걸 경우가 해당되겠죠.
그런 경우 긴 주소를 줄여주는 서비스를 이용해서 짧게 첨부할수 있습니다.
다양한 곳에서 그러한 서비스를 제공하는데요 전 구글에서 제공하는 Google url shorter를 소개해드릴게요.

Google url shorter 바로가기


주소는 "goo.gl"입니다. 짧으니 기억해두면 유용할듯해요.




ㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁ
웹루트에 .htaccess 파일 만들고 아래와 같이 적어주면 됩니다.
ErrorDocument 404 / 이 부분은 404에러가 날 경우 웹루트(/)로 보내라는 얘기구요.
fancyurl 이라는 파일을 php로 해석해서 처리하라는 얘기입니다.

[.htaccess 파일 예제]
ErrorDocument 404 /
<Files fancyurl>
ForceType application/x-httpd-php
</Files>



http://overfloweb.com/blog/index.php/archives/4


Browse: Home / Fancy URL (Search Engine-Friendly URLs)
Fancy URL (Search Engine-Friendly URLs)

By overflow on April 1, 2008

http://www.webmasterbase.com/article.php/999/12



아파치를 이용해서 위와 같은 url로 스크립트를 실행시킬 수 있는
3가지 방법에 대해 알아보겠습니다.



1. 아파치의 look back 기능을 이용한다.
아파치는 기본적으로 사용자가 요청한 리소스가 없을 경우 backward 방식으로 url을 탐색합니다.
“http://www.webmasterbase.com/article.php/999/12” URL의 경우 12라는 디렉토리나 파일이

없으면 다시 999라는 디렉토리나 파일을 찾고 그것도 없으면 article.php를 실행하게 되죠.



따라서 “http://www.webmasterbase.com/article.php?article=999&number=12” 와 같은 url을
“http://www.webmasterbase.com/article.php/999/12” 처럼 단순하게 바꿀수 있습니다.

이 경우 $_SERVER['PATH_INFO']에서는 “/999/12″ 라는 문자열이 저장되는데 이것을

article.php에서 원하는 방식으로 파싱하면 됩니다.



예제)
$uri = explode(“/”, $_SERVER['PATH_INFO']));
$article = $uri[1];
$number = $uri[2];



단점:

검색엔진에 해당페이지(http://www.webmasterbase.com/article.php/999/12)가 등록이 안될

가능성이 있습니다. 참고로, google 에서는 정상적으로 등록이 됩니다.

2. 두번째 방법은 .htaccess 파일을 이용하는 겁니다.
.htaccess 파일내에



ErrorDocument 404 /article.php



이렇게 적어 놓으면 아파치가 요청받은 리소스를 찾지 못할경우 에러메세지를 출력하는 대신에
자동으로 /article.php 파일로 리다이렉트를 시켜버리게 됩니다.

그러므로 홈페이지의 루트디렉토리 밑에 article.php 파일을 만들어서 아래와 같이 입력해 주면…



<?php
header(“HTTP/1.1 200 OK”);
echo $_SERVER['REQUEST_URI'];
?>



http://www.webmasterbase.com/999/12 와 같은 문서를 요청받은 아파치는 마찬가지로 12라는

디렉토리 혹은 파일을 찾게 됩니다. 물론 12라는 디렉토리나 파일은 없죠. 그러므로 이때에는

url을 look back 하는게 아닌 .htaccess 파일에 명시해 놓은데로 요청을 /articles.php로

리다이렉트 시키게 됩니다. 이때 header()함수를 이용해서 요청이 성공적으로 처리되었다는

(200 OK) 것을 강제로 브라우저에게 전송해줍니다.



위 방식을 사용할 때는 $_POST['PATH_INFO'] 변수를 사용할 수 없고 대신에

$_SERVER['REQUEST_URI']을 이용하면 됩니다. 마찬가지로 위 변수안에는 /999/12 이라는

문자열이 저장되게 됩니다. 1번 방법보다 URL이 더 간단해 졌죠?



단점 : Apache 서버는 위와 같은 형태의 URL 요청을 에러 페이지(article.php)로 보내버리기

때문에 서버의 error logs 가 급격히 증가하게 됩니다.-_-;;;

그리고 article.php에서는 적절한 처리를 해주는 루틴을 추가해줘야겠죠.



3. 마지막 3번째 방법은 ForceType Directive 를 이용하는겁니다.
ForceType directive는 기본 설정된 MIME 타입을 오버라이드 해버립니다. 즉, html 페이지를

php로 해석하게도 만들 수 있다는거죠. 여기서 사용할 방법은 확장자가 없는 article 파일을

php 파일로 인식하게끔 하는거죠. 이렇게 된다면…

http://www.webmasterbase.com/article.php/999/12 형태의 URL을
http://www.webmasterbase.com/article/999/12 와 같이 바꿔줄 수 있게됩니다. 더 보기좋죠?



2번 방법과 마찬가지로 .htaccess 파일을 손봐주면 됩니다.



<Files article>
ForceType application/x-httpd-php
</Files>



위와 같이 “<Files>” 내에 article 이라는 파일명을 적어주는거죠. 그리고 article이라는 파일을

ForceType directive를 이용해서 php 파일로 인식시키는겁니다.



단점 : 2번 방법보다 URL이 약간 길어졌습니다.-_-;

총평 :

방법 2와 3의 가장 큰 문제점은 .htaccess 파일을 이용해야 한다는 건데…
현재 제가 사용중인 cafe24의 경우 .htaccess 파일을 사용하지 못하도록 되어있기 때문에
전혀 도움이 안됐다는…ㅠㅠ



그리고 위 방법을 이용하면 개인별 서비스를 제공하는 척 하게끔 만들수가 있게됩니다.

예를 들어 블로그 형태의 URL을 이용할 수 있는거죠.

http://www.raysoda.com/comethunter



위와 같이 해줄려면 방법 2를 이용해서 처리해주면 되겠죠?

참고 문헌 : http://www.sitepoint.com/article/search-engine-friendly-urls

| Tagged fancy url, serverScript | Leave a response
ㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁ
※ 참고
    http://tit99hds.egloos.com/v/1407742
    http://blog.daum.net/junes-k/6
    http://show.ideatree.kr/pages/?board_content_idx=2550
     


'web > etc' 카테고리의 다른 글

Microsoft Remote Desktop(RDC) 한영 전환 안됨  (1) 2020.06.24
611f14858cd043c8a31a9db143774486  (0) 2019.08.26
fastcopy batch  (0) 2019.07.28
Markdown(마크다운)  (0) 2019.01.30
highlightjs 문법강조  (0) 2014.11.21

댓글