뭔가 하면 예제를 봐라
http://cplus98@tinydew4.pe.kr/

구현하기전에 필요한 함수들 (사실 이것도 내가 했지만)
function substr(string, start, length)
{
  return string.substr(start, length - start);
}

function GetHost(url)
{
  var host = "";
  var at_pos = url.indexOf('@');
  var split_pro = url.indexOf('://') + 3;

  if (at_pos > 0)
    host = substr(url, 0, split_pro) + substr(url, at_pos + 1, url.indexOf('/', at_pos));
  else
    host = substr(url, 0, url.indexOf('/', split_pro));

  return host;
}

function GetID(url)
{
  if (url.indexOf('@') > 0)
    return substr(url, url.indexOf('/', url.indexOf('/') + 1) + 1, url.lastIndexOf('@'));
  return "";
}

function GetPath(url)
{
  var split_host = url.indexOf('/', (url.indexOf('/', url.indexOf('/') + 1) + 1));
  var split_path = url.lastIndexOf('/');
  if (split_host != split_path)
    return substr(url, split_host, split_path);
  return "";
}

function GetFile(url)
{
  var split_path = url.lastIndexOf('/');
  if (split_path < url.length)
  {
    var split_var = url.indexOf('?');
    ++split_path;
    if (split_var > 0)
      return substr(url, split_path, split_var);
    else
      return url.substr(split_path);
  }
  return "";
}

function GetVar(url)
{
  var split_var = url.indexOf('?');
  return (split_var > 0 ? url.substr(split_var + 1) : "");
}

실제내용
function at_redir(user_dir)
{
  var url = "" + document.location;
  var id = GetID(url);

  if (id != "")
  {
    var redir = "";

    if (id == "cplus98")
      redir = "http://myhome.hanafos.com/~cplus98/";
    else
      redir = "http://tinydew4.pe.kr/users/" + id;

    if (redir != "")
    {
      var request_var = GetVar(url);
      if (request_var != "")
        redir += "?" + request_var;
      location.replace(redir);
    }
  }
}

참고소스에는 그냥 user 부분을 보고 redirecting 만 시켰는데
난 뒤에 ? 로 딸려오는 get변수도 넘겨줘..좀더 확장 시켰다.
(페이지도 넣으려 했는데 @ 자체가 페이지를 읽은 후에 처리되는 것이라 그냥 @ 부분을 뺀 url 을 읽어버려서 못함)

그냥..홈페이지 만들었거나 만들사람들은 자주쓰이는 주소 ( e.g 포트폴리오 ) 는 줄여서 멋있게 만들어 보라고;;


참고글 : phpschool.com 의 어딘가에서~
참고소스 : korea.com (view-source:http://korea.com 을 웹브라우저 주소창에 입력하면 나옴)

+ Recent posts