질문/조언질답게시판

getUrl()을 찍으면 보통은 기본 도메인 주소가 나오잖아요?

그런데 제 경우에는 http://aaa.xxx.com 이 아니라 http://aaa.xxx.com/aaa 형태로 찍히고 있습니다.

그에 반해 getUrl('')이라고 찍으면 DB테이블과 db.config.php에 있는대로 그냥 http://aaa.xxx.com 으로 나오고 있구요.

 

왜 이렇게 됐나 생각해보니 다음과 같이 세팅이 돼서 그런 게 아닌가 의심스럽습니다.

 

- cafe24 웹호스팅 메인 루트에는 wp가 설치되어 있습니다.

- 여기에 aaa 라는 폴더를 만들고, 서브도메인으로 연결했습니다.

- 연결 방식은 메인 루트의 .htaccess 수정으로 했구요. 그 결과 xxx.com/aaa 로 접속하면 aaa.xxx.com 으로 잘 나옵니다. 구글링 팁으로 다음과 같이 했어요.

RewriteCond $1 !^(aaa)/
RewriteCond %{HTTP_HOST} ^aaa\.xxx\.com [NC]
RewriteRule ^(.*)$ /aaa/$1 [L]

- 이 상태에서 aaa 폴더에 xe 최신 버전을 설치했습니다.

- 설치 직후 확인해보니 기본 도메인이 http://aaa.xxx.com/aaa 으로 잡혀 있길래, http://aaa.xxx.com/ 으로 총 3차례 수정했습니다. 관리자 페이지에서 한번, db.config.php에서 또 한번, DB 테이블에서 마지막 한번. + 그리고 files/cache 폴더도 삭제했구요.

 

이렇게 했더니 스킨 등에서 getUrl('mid', $mid) 같은 것은 http://aaa.xxx.com/{$mid} 로 잘 출력됩니다만, 검색 결과 리턴 url 등 그냥 getUrl()에서는 http://aaa.xxx.com/aaa 로 출력이 되네요ㅠ

 

기능상 아무런 문제가 없긴 하지만, 그래도 url 창에 aaa 폴더 이름이 뜨니까 찜찜하더라구요.

이런 느낌 아실지ㅜㅜ

 

아무튼 질문드려봅니다.

getUrl() 출력에서도 하위폴더가 안 잡히게끔 하는 방법이 없을까요?

  • profile

    하위 폴더에 설치되어 있으니까 당연히 하위 폴더를 포함한 주소가 나오는 거죠.

     

    .htaccess를 이용한 rewrite는 눈가리고 아웅입니다. 방문자의 주소창에 폴더가 보이지 않도록 숨겨줄 뿐, 서버에 설치된 XE 입장에서는 당연히 하위 폴더에 자신이 설치되어 있는 것으로 보입니다. XE는 기본URL에 무척 민감하기 때문에 억지로 폴더를 숨기려고 하면 예상치 못한 부작용이 발생할 수 있습니다. SEO처럼 눈에 보이지 않는 부분도 모두 망가질 거예요.

     

    실제 설치된 경로를 숨기려는 모든 시도는 헛일입니다. 폴더 붙여서 쓰거나, 계정 분리하세요.

  • profile profile
    역시 꼼수는 한계가 있는 거군요. 아쉽지만 어쩔 수 없네요. 말씀 감사합니다~
  • profile profile
    네이버 검색에 전혀 상관 없는 사이트라면 상관없지만 네이버에 검색이 되어져야 할 사이트라면
    절대로 도메인의 루트 아래 폴더에 설치하거나 혹은 설치한 후 편법으로 폴더가 아닌 루트에 있는 것 처럼 하지 마세요.

    오래전 네이버에서는 폴더까지 사이트로 접수를 받았던 시절에는 문제가 안되었으나(사실 이때 네이버가 막장..) 도메인 단위로만 접수받기 시작한 이후로 위와 같은 경우 시시때때로 사이트가 검색에서 사라집니다.

    네이버가 사이트를 잃어버리는 경우가 자주 발생하더군요...
  • profile profile
    네, 다행히 내부자 전용 아카이브를 만든 거여서 SEO와는 거리가 멀수록 좋아요;;
    현재까지 기능상 큰 지장은 없는데 신경ㅎ이 거슬리는 게 문제인 정도예요.

    좀 더 꼼수부려보다가 방법을 찾기 어렵거나 기능상 문제가 생기면 그냥 포기할 것 같아요ㅎㅎ
  • profile
    일단 꼼수를 하나 더 써서 getUrl()을 잡았습니다.
    XE 1.11.2 기준 config/func.inc.php getScriptPath() 함수의 1370행에

    $script_path = str_replace('/aaa/', '/', $script_path);

    를 새로 삽입을 했습니다.
    getUrl()은 물론 자바스크립트로 넘어가는 current_url 같은 변수들도 이제 잘 나옵니다.
    완전 꼼수 하하호호ㅠㅠ
  • profile profile
    역시 고-수!
  • profile profile
    고수 아니고 꼼수!

서버에 요청 중입니다. 잠시만 기다려 주십시오...