제목 | 2차 도메인의 rewrite rule 질문 입니다. | ||
---|---|---|---|
글쓴이 | 터푸 | 작성시각 | 2013/04/08 10:02:10 |
|
|||
매번 눈팅만 하다가 좀 난감한 문제가 발생하여 질문을 드려 죄송하고 질문 시작 하겠습니다. 메인 웹서버에서 메인 페이지 및 클럽/블로그 형태의 웹을 돌리려고 하고 있는데, 여기서 좀 골치가 아픈 일이 생겨서 말이죠 다름이 아니고 CI 를 이용하여 개발을 하고 있는데 컨트롤러 단에서 서비스를 분리하려고 합니다. Controller -> main_web -> club -> etc... 현재 클럽을 예로 들면 www.test.com/club/index/CLUB_ID 의 경로로 가면 클럽의 메인 페이지가 나오는 구조 입니다. (실제로 이렇게 구현되어 있고 잘 돌아 갑니다) 그러나 제가 생각하고 있는것은 위의 url 구조가 아니고 club.test.com/CLUB_ID 의 url 구조입니다. 그래서 .htaccess 를 손보고 있는데 잘 안되더군요 ================================================= RewriteEngine on
RewriteCond %{HTTP_HOST} ^club\.test\.com/*
#RewriteRule ^(.*)$ http://test.com/index.php/club/index/$1 [L] RewriteRule ^/(.*)$ /home/test.com/public_html/index.php club index $1 [L]
#CI conf start RewriteCond $1 !^(index\.php|css|js|img|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
=================================================
RewriteRule ^(.*)$ http://test.com/index.php/club/index/$1 [L] 이렇게 구현하면 잘 돌아가나, 문제는 브라우져의 url 이 redirecting 되어 실제로 브라우져상의 url 이 "www.test.com/club/index/CLUB_ID" 이런형식으로 보이게 됩니다.;;; 그래서 RewriteRule ^/(.*)$ /home/test.com/public_html/index.php $1 [L] 이런 형식으로 구현을 해 보려고 하는데 이것은 오류가 발생하고 이 자체만으론 redirect 순환 오류가 발생하는것도 같아서 골치가 아픈 상태구요 마지막으로 routes.php 를 수정하여 if( /* 호스트가 클럽쪽에서 온 것이라면 */){
//$route['(:any)'] = "/club/index/$1";
}
이렇게 구현을 하니까 일단은 됩니다. 그러나 이런 redirect 에 관련된 부분을 php 에서 처리하는 것이 좀 부담스럽고 일단 라우팅 소스에 이런 부분이 있는다것 자체가 자꾸 거슬리고 있는지라 되도록이면 apache rewite 에서 해결을 하고 싶은데 잘 안되네요 CI로 수년간 개발해 오신 분들의 조언과 경험담을 부탁 드려 봅니다. |
|||
다음글 | URL암호화 관련 문의. (2) | ||
이전글 | form_validation 이 작동을 안합니다.. (8) | ||
당근
/
2013/04/08 14:55:13 /
추천
0
|
터푸
/
2013/04/09 10:05:39 /
추천
0
#CI conf start
RewriteCond $1 !^(index\.php|css|js|img|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L] ==> 이부분을요
=================================================
RewriteRule ^(.*)$ index/club/index.php/$1 [L] <-- 이렇게 하면 rewritelog 에 실제로 rewrite 'club/index/testclub' -> 'index.php/club/index/club/index/testclub' add per-dir prefix: index.php/club/index/club/index/testclub -> /home/test.com/public_html/index.php/club/index/club/index/testclub strip document_root prefix: /home/test.com/public_html/index.php/club/index/club/index/testclub -> /index.php/club/index/club/index/testclub 이렇게 두번 rewrite 가 되는 현상이 발생해서 안되네요;;;; |
당근
/
2013/04/09 16:57:29 /
추천
0
루트쪽에 .htaccess두신거 같은데요.. 서브 디렉토리에 두시면 될꺼 같아요.. 여러경우라면..
해당 디렉토리마다 club/index.php $1 => XXX/index.php 형대로 각 폴더마다 두시면 될꺼 같아요.. 도움이 되어야 할텐데... |
RewriteRule ^(.*)$ club/index.php/$1 [L]
이렇게 하시면 될꺼같아여