URI 중 /kngil/skin 반복제거. php 확장자 노출 제거
This commit is contained in:
15
.htaccess
15
.htaccess
@@ -1,6 +1,15 @@
|
||||
RewriteEngine On
|
||||
|
||||
# Skip existing files and directories.
|
||||
# 레거시 /kngil/skin/*.php -> /* (확장자 제거)
|
||||
RewriteRule ^kngil/skin/([^/]+)\.php$ /$1 [R=301,L]
|
||||
|
||||
# 레거시 /kngil/*.php -> /* (확장자 제거)
|
||||
RewriteRule ^kngil/([^/]+)\.php$ /$1 [R=301,L]
|
||||
|
||||
# 레거시 /kngil 또는 /kngil/ -> /
|
||||
RewriteRule ^kngil/?$ / [R=301,L]
|
||||
|
||||
# 기존 파일/디렉터리는 그대로 통과
|
||||
RewriteCond %{REQUEST_FILENAME} -f [OR]
|
||||
RewriteCond %{REQUEST_FILENAME} -d
|
||||
RewriteRule ^ - [L]
|
||||
@@ -21,3 +30,7 @@ RewriteRule ^admin/api/product/delete/?$ /kngil/bbs/adm_product_popup_delete.php
|
||||
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]
|
||||
|
||||
# 루트 페이지 라우팅: / -> index, /{page} -> /kngil/skin/{page}.php
|
||||
RewriteRule ^$ /kngil/skin/index.php [L]
|
||||
RewriteRule ^([^/]+)$ /kngil/skin/$1.php [L]
|
||||
|
||||
@@ -278,7 +278,7 @@ try {
|
||||
<body>
|
||||
<script>
|
||||
(function () {
|
||||
const target = '/kngil/skin/index.php';
|
||||
const target = '/';
|
||||
if (window.opener && !window.opener.closed) {
|
||||
try {
|
||||
window.opener.postMessage({ type: 'OIDC_LOGIN_SUCCESS' }, window.location.origin);
|
||||
@@ -295,7 +295,7 @@ try {
|
||||
})();
|
||||
</script>
|
||||
<noscript>
|
||||
<a href="/kngil/skin/index.php">메인으로 이동</a>
|
||||
<a href="/">메인으로 이동</a>
|
||||
</noscript>
|
||||
</body>
|
||||
</html>
|
||||
@@ -305,5 +305,5 @@ try {
|
||||
} catch (Exception $e) {
|
||||
echo "<h1>로그인 오류</h1>";
|
||||
echo "<p>" . htmlspecialchars($e->getMessage()) . "</p>";
|
||||
echo "<a href='/kngil/index.php'>메인으로 돌아가기</a>";
|
||||
echo "<a href='/'>메인으로 돌아가기</a>";
|
||||
}
|
||||
|
||||
@@ -2,5 +2,5 @@
|
||||
session_start();
|
||||
session_destroy();
|
||||
|
||||
header('Location: /kngil/skin/index.php');
|
||||
header('Location: /');
|
||||
exit;
|
||||
|
||||
@@ -14,7 +14,7 @@ if (session_status() === PHP_SESSION_NONE) {
|
||||
if (empty($_SESSION['login'])) {
|
||||
echo "<script>
|
||||
alert('로그인 후 이용 가능합니다.');
|
||||
location.href = '/kngil/skin/qa_list.skin.php';
|
||||
location.href = '/qa_list.skin';
|
||||
</script>";
|
||||
exit;
|
||||
}
|
||||
@@ -92,7 +92,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST' && ($_POST['action'] ?? '') === 'delet
|
||||
|
||||
$pdo->commit();
|
||||
|
||||
header("Location: /kngil/skin/qa_list.skin.php");
|
||||
header("Location: /qa_list.skin");
|
||||
exit;
|
||||
|
||||
} catch (Exception $e) {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?php
|
||||
/**
|
||||
* Q&A 리스트 컨트롤러
|
||||
* - 스킨: /kngil/skin/qa_list.skin.php
|
||||
* - 스킨: /kngil/skin/qa_list.skin.php (URL: /qa_list.skin)
|
||||
*/
|
||||
|
||||
ini_set('display_errors', 1);
|
||||
|
||||
@@ -17,7 +17,7 @@ if (session_status() === PHP_SESSION_NONE) {
|
||||
if (empty($_SESSION['login'])) {
|
||||
echo "<script>
|
||||
alert('로그인이 필요합니다.');
|
||||
location.href = '/kngil/skin/qa_list.skin.php';
|
||||
location.href = '/qa_list.skin';
|
||||
</script>";
|
||||
exit;
|
||||
}
|
||||
|
||||
@@ -13,11 +13,11 @@
|
||||
VISITED_STORAGE_KEY: 'visited',
|
||||
VIDEO_BASE_PATH: '../img/video',
|
||||
PAGE_LINKS: {
|
||||
1: '/kngil/skin/value.php',
|
||||
2: '/kngil/skin/provided.php',
|
||||
3: '/kngil/skin/primary.php',
|
||||
4: '/kngil/skin/analysis.php',
|
||||
5: '/kngil/skin/results.php'
|
||||
1: '/value',
|
||||
2: '/provided',
|
||||
3: '/primary',
|
||||
4: '/analysis',
|
||||
5: '/results'
|
||||
},
|
||||
SELECTORS: {
|
||||
video: '#video_play',
|
||||
|
||||
@@ -18,19 +18,19 @@
|
||||
<div class="comp-contact">
|
||||
<ul class="footer-menu">
|
||||
<li>
|
||||
<a href="value.php">KNGIL</a>
|
||||
<a href="/value">KNGIL</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="provided.php">제공데이터</a>
|
||||
<a href="/provided">제공데이터</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="primary.php">주요기능</a>
|
||||
<a href="/primary">주요기능</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="analysis.php">데이터분석</a>
|
||||
<a href="/analysis">데이터분석</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="results.php">성과품</a>
|
||||
<a href="/results">성과품</a>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="footer-family">
|
||||
@@ -54,4 +54,4 @@
|
||||
|
||||
<!-- // 모든 팝업페이지 경로 -->
|
||||
|
||||
<script src="/kngil/js/common.js"></script>
|
||||
<script src="/kngil/js/common.js"></script>
|
||||
|
||||
@@ -229,14 +229,14 @@ $isCompanyAdmin = in_array($auth, ['BS100100', 'BS100200', 'BS100300', 'BS100400
|
||||
<div class="floating-menu">
|
||||
<ul>
|
||||
<li class="floating-faq">
|
||||
<a href="/kngil/skin/qa_list.skin.php">
|
||||
<a href="/qa_list.skin">
|
||||
<i class="ico-faq"></i>
|
||||
<span>Q&A</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="floating-buy">
|
||||
<a href="/kngil/skin/buy.php">
|
||||
<a href="/buy">
|
||||
<i class="ico-buy"></i>
|
||||
<span>구매하기</span>
|
||||
</a>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<ul class="sitemap">
|
||||
<li class="value">
|
||||
<a href="/kngil/skin/value.php">
|
||||
<a href="/value">
|
||||
<span>KNGIL</span>
|
||||
<p>
|
||||
공공데이터 기반으로<br>
|
||||
@@ -12,7 +12,7 @@
|
||||
<div class="bg-line down"></div>
|
||||
</li>
|
||||
<li class="provided">
|
||||
<a href="/kngil/skin/provided.php">
|
||||
<a href="/provided">
|
||||
<span>제공데이터</span>
|
||||
<p>
|
||||
항목별 공공데이터를 기반으로<br>
|
||||
@@ -26,7 +26,7 @@
|
||||
<div class="bg-line up"></div>
|
||||
</li>
|
||||
<li class="primary">
|
||||
<a href="/kngil/skin/primary.php">
|
||||
<a href="/primary">
|
||||
<span>주요기능</span>
|
||||
<p>
|
||||
기초현황 보고서 설정 등에 대한 <br>
|
||||
@@ -40,7 +40,7 @@
|
||||
<div class="bg-line down"></div>
|
||||
</li>
|
||||
<li class="analysis">
|
||||
<a href="/kngil/skin/analysis.php">
|
||||
<a href="/analysis">
|
||||
<span>데이터분석</span>
|
||||
<p>
|
||||
데이터의 특성과 형태에 따라 <br>
|
||||
@@ -54,7 +54,7 @@
|
||||
<div class="bg-line up"></div>
|
||||
</li>
|
||||
<li class="results">
|
||||
<a href="/kngil/skin/results.php">
|
||||
<a href="/results">
|
||||
<span>성과품</span>
|
||||
<p>
|
||||
데이터 분석 결과를 기반으로<br>
|
||||
|
||||
@@ -82,7 +82,7 @@
|
||||
</ul>
|
||||
</div>
|
||||
<div class="btn-wrap">
|
||||
<a href="/kngil/skin/faq_list.skin.php" class="btn-contact">
|
||||
<a href="/faq_list.skin" class="btn-contact">
|
||||
<i class="ico-contact"></i>
|
||||
KNGIL 구매문의
|
||||
</a>
|
||||
|
||||
@@ -63,7 +63,7 @@
|
||||
|
||||
<ul class="sub-tab">
|
||||
<li class="on">
|
||||
<a href="/kngil/skin/faq_list.skin.php">자주하는 질문(FAQ)</a>
|
||||
<a href="/faq_list.skin">자주하는 질문(FAQ)</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/kngil/bbs/qa_list.php">문의하기(Q&A)</a>
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
if (!$isLogin) {
|
||||
echo "<script>
|
||||
alert('로그인 후 문의 등록이 가능합니다.');
|
||||
location.href = '/kngil/skin/qa_list.skin.php';
|
||||
location.href = '/qa_list.skin';
|
||||
</script>";
|
||||
exit;
|
||||
}
|
||||
@@ -56,7 +56,7 @@
|
||||
<p class="sub-txt">KNGIL 관련 문의하기</p>
|
||||
</div>
|
||||
<ul class="sub-tab">
|
||||
<li><a href="/kngil/skin/faq_list.skin.php">자주하는 질문(FAQ)</a></li>
|
||||
<li><a href="/faq_list.skin">자주하는 질문(FAQ)</a></li>
|
||||
<li class="on"><a href="/kngil/bbs/qa_list.php">문의하기(Q&A)</a></li>
|
||||
<li><a href="https://939.co.kr/saman/" target="_blank">원격지원</a></li>
|
||||
</ul>
|
||||
|
||||
@@ -56,7 +56,7 @@
|
||||
<p class="sub-txt">KNGIL 관련 문의하기</p>
|
||||
</div>
|
||||
<ul class="sub-tab">
|
||||
<li><a href="/kngil/skin/faq_list.skin.php">자주하는 질문(FAQ)</a></li>
|
||||
<li><a href="/faq_list.skin">자주하는 질문(FAQ)</a></li>
|
||||
<li class="on"><a href="/kngil/bbs/qa_list.php">문의하기(Q&A)</a></li>
|
||||
<li><a href="https://939.co.kr/saman/" target="_blank">원격지원</a></li>
|
||||
</ul>
|
||||
@@ -233,7 +233,7 @@
|
||||
</div>
|
||||
<?php endif ?>
|
||||
<div class="btn-wrap right">
|
||||
<button type="button" class="btn-primary" onclick="location.href='/kngil/skin/qa_write.skin.php'">
|
||||
<button type="button" class="btn-primary" onclick="location.href='/qa_write.skin'">
|
||||
<i class="fa fa-pencil" aria-hidden="true"></i> 문의등록
|
||||
</button>
|
||||
</div>
|
||||
|
||||
@@ -58,7 +58,7 @@
|
||||
<span>EG-BIM 관련 문의하기</span>
|
||||
</div>
|
||||
<ul class="sub_tab">
|
||||
<li><a href="/kngil/skin/faq_list.skin.php">자주하는 질문(FAQ)</a></li>
|
||||
<li><a href="/faq_list.skin">자주하는 질문(FAQ)</a></li>
|
||||
<li class="on"><a href="/kngil/bbs/qa_list.php">문의하기(Q&A)</a></li>
|
||||
<li><a href="https://939.co.kr/saman/" target="_blank">원격지원</a></li>
|
||||
</ul>
|
||||
@@ -235,7 +235,7 @@
|
||||
<?php endif ?>
|
||||
|
||||
<div class="btn-group">
|
||||
<button type="button" class="btn btn-write" onclick="location.href='/kngil/skin/qa_write.skin.php'">
|
||||
<button type="button" class="btn btn-write" onclick="location.href='/qa_write.skin'">
|
||||
<i class="fa fa-pencil" aria-hidden="true"></i> 문의등록
|
||||
</button>
|
||||
</div>
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
if (!$isLogin) {
|
||||
echo "<script>
|
||||
alert('로그인 후 문의 등록이 가능합니다.');
|
||||
location.href = '/kngil/skin/qa_list.skin.php';
|
||||
location.href = '/qa_list.skin';
|
||||
</script>";
|
||||
exit;
|
||||
}
|
||||
@@ -70,7 +70,7 @@
|
||||
<p class="sub-txt">KNGIL 관련 문의하기</p>
|
||||
</div>
|
||||
<ul class="sub-tab">
|
||||
<li><a href="/kngil/skin/faq_list.skin.php">자주하는 질문(FAQ)</a></li>
|
||||
<li><a href="/faq_list.skin">자주하는 질문(FAQ)</a></li>
|
||||
<li class="on"><a href="/kngil/bbs/qa_list.php">문의하기(Q&A)</a></li>
|
||||
<li><a href="https://939.co.kr/saman/" target="_blank">원격지원</a></li>
|
||||
</ul>
|
||||
|
||||
Reference in New Issue
Block a user