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() 출력에서도 하위폴더가 안 잡히게끔 하는 방법이 없을까요?
하위 폴더에 설치되어 있으니까 당연히 하위 폴더를 포함한 주소가 나오는 거죠.
.htaccess를 이용한 rewrite는 눈가리고 아웅입니다. 방문자의 주소창에 폴더가 보이지 않도록 숨겨줄 뿐, 서버에 설치된 XE 입장에서는 당연히 하위 폴더에 자신이 설치되어 있는 것으로 보입니다. XE는 기본URL에 무척 민감하기 때문에 억지로 폴더를 숨기려고 하면 예상치 못한 부작용이 발생할 수 있습니다. SEO처럼 눈에 보이지 않는 부분도 모두 망가질 거예요.
실제 설치된 경로를 숨기려는 모든 시도는 헛일입니다. 폴더 붙여서 쓰거나, 계정 분리하세요.