RewriteEngine On # /adm -> /admin (관리자 루프 방지) RewriteRule ^adm/?$ /admin [R=301,L] # 대소문자 혼용 경로 보정 RewriteRule ^(kngil/)?js/lib/ScrollToPlugin\.min\.js$ /js/lib/scrollToPlugin.min.js [R=301,L] # 레거시 /kngil/skin/adm*.php -> /admin(/company) RewriteCond %{THE_REQUEST} \s/+kngil/skin/adm_comp\.php [NC] RewriteRule ^kngil/skin/adm_comp\.php$ /admin/company [R=301,L] RewriteCond %{THE_REQUEST} \s/+kngil/skin/adm\.php [NC] RewriteRule ^kngil/skin/adm\.php$ /admin [R=301,L] # 레거시 /kngil/skin/index.php -> / RewriteCond %{THE_REQUEST} \s/+kngil/skin/index\.php [NC] RewriteRule ^kngil/skin/index\.php$ / [R=301,L] # 레거시 /kngil/skin/*.skin.php -> /* (확장자 제거) RewriteCond %{THE_REQUEST} \s/+kngil/skin/([^\s]+)\.skin\.php [NC] RewriteRule ^kngil/skin/([^/]+)\.skin\.php$ /$1 [R=301,L] # 레거시 /*.skin -> /* (확장자 제거) RewriteCond %{THE_REQUEST} \s+/([^\s]+)\.skin [NC] RewriteRule ^([^/]+)\.skin$ /$1 [R=301,L] # 레거시 /kngil/*.skin -> /* (확장자 제거) RewriteCond %{THE_REQUEST} \s/+kngil/([^\s]+)\.skin [NC] RewriteRule ^kngil/([^/]+)\.skin$ /$1 [R=301,L] # 레거시 /kngil/skin/*.php -> /* (확장자 제거) RewriteCond %{THE_REQUEST} \s/+kngil/skin/([^\s]+)\.php [NC] RewriteRule ^kngil/skin/([^/]+)\.php$ /$1 [R=301,L] # 레거시 /kngil/*.php -> /* (확장자 제거) RewriteCond %{THE_REQUEST} \s/+kngil/([^\s]+)\.php [NC] RewriteRule ^kngil/([^/]+)\.php$ /$1 [R=301,L] # 레거시 /kngil 또는 /kngil/ -> / RewriteCond %{THE_REQUEST} \s/+kngil/?\s [NC] RewriteRule ^kngil/?$ / [R=301,L] # 정적 파일 CDN 리다이렉트(옵션: STATIC_CDN_BASE_URL 환경변수) RewriteCond %{ENV:STATIC_CDN_BASE_URL} !="" RewriteRule ^(kngil/)?(js|css|img|fonts|download|uploads|vendor)/(.*)$ %{ENV:STATIC_CDN_BASE_URL}/$2/$3 [R=302,L] # 기존 파일/디렉터리는 그대로 통과 RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^ - [L] # 정적 파일 루트 경로 -> /kngil/ 경로로 내부 라우팅 RewriteRule ^(js|css|img|fonts|download|uploads|vendor)/(.*)$ /kngil/$1/$2 [L] # Admin UI RewriteRule ^admin/?$ /kngil/skin/adm.php [L] RewriteRule ^admin/company/?$ /kngil/skin/adm_comp.php [L] # Admin APIs RewriteRule ^admin/api/super/?$ /kngil/bbs/adm.php [QSA,L] RewriteRule ^admin/api/company/?$ /kngil/bbs/adm_comp.php [QSA,L] RewriteRule ^admin/api/service/?$ /kngil/bbs/adm_service.php [QSA,L] RewriteRule ^admin/api/purchase-history/?$ /kngil/bbs/adm_purch_popup.php [QSA,L] RewriteRule ^admin/api/use-history/?$ /kngil/bbs/adm_use_history.php [QSA,L] RewriteRule ^admin/api/product/?$ /kngil/bbs/adm_product_popup.php [QSA,L] RewriteRule ^admin/api/product/save/?$ /kngil/bbs/adm_product_popup_save.php [QSA,L] RewriteRule ^admin/api/product/delete/?$ /kngil/bbs/adm_product_popup_delete.php [QSA,L] RewriteRule ^admin/api/faq/?$ /kngil/bbs/adm_faq_popup.php [QSA,L] RewriteRule ^admin/api/faq/save/?$ /kngil/bbs/adm_faq_popup_save.php [QSA,L] RewriteRule ^admin/api/faq/delete/?$ /kngil/bbs/adm_faq_popup_delete.php [QSA,L] # Q&A 라우팅 (컨트롤러 우선) RewriteRule ^qa_list/?$ /kngil/bbs/qa_list.php [QSA,L] RewriteRule ^qa_detail/?$ /kngil/bbs/qa_detail.php [QSA,L] RewriteRule ^qa_write/?$ /kngil/bbs/qa_write.php [QSA,L] # 루트 페이지 라우팅: / -> index, /{page} -> /kngil/skin/{page}.php RewriteRule ^$ /kngil/skin/index.php [L] RewriteRule ^([^/]+)$ /kngil/skin/$1.php [L]