특정 도메인에서만 접속이 가능하도록...

특정 도메인에서만 접속이 가능하도록...

QA

특정 도메인에서만 접속이 가능하도록...

본문

혹시 제 홈페이지를 운영중인네이버카페를 통해서만

접속되게하려고합니다.

 

https://cafe.naver.com/ 도메인의 카페를 통해서만

제 사이트에 접속되도록 설정할수가 있을까요

 

만약된다면 다른데를 통해들어오면

네이버카페를 통해서만 접속가능합니다. 라고 경고문을 넣어주고싶어요

이 질문에 댓글 쓰기 :

답변 2

"https://cafe.naver.com"을 참조하지 않은 경우

.htaccess 사용하여 특정 페이지(restricted.html)로 이동시키서 메세지~잉

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^https://cafe\.naver\.com/ [NC]
RewriteRule .* /restricted.html [L,R=302]

Nginx를 사용 중이라면 server 블록에 ~

server {
    listen 80;
    server_name yoursite.com;

    location / {
        if ($http_referer !~* "https://cafe\.naver\.com/") {
            return 302 /restricted.html;
        }
        root /var/www/html;
        index index.html index.php;
    }
}

 

restricted.html 파일

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>접속 제한</title>
</head>
<body>
    <h2>네이버 카페를 통해서만 접속 가능합니다.</h2>
    <p>접속을 원하시면 <a href="https://cafe.naver.com/">네이버 카페</a>를 통해 접속해주세요.</p>
</body>
</html>

 

.htaccess나 Nginx 설정이 어려우시면, PHP를 이용~ 사이트의 모든 페이지 최상단에 ~

<?php
$allowed_referer = "https://cafe.naver.com/";
if (!isset($_SERVER['HTTP_REFERER']) || strpos($_SERVER['HTTP_REFERER'], $allowed_referer) === false) {
    header("Location: /restricted.html");
    exit;
}
?>

<?php
$allowed_referer = "https://cafe.naver.com/";
if (!isset($_SERVER['HTTP_REFERER']) || strpos($_SERVER['HTTP_REFERER'], $allowed_referer) === false) {
    header("Location: /restricted.php");
    exit;
}
?>  이것으로 적용하니 너무 잘되네요 혹시 접속주소를 두개넣고 싶을때는 어떻게 해야하는지해서요

cafe.daum.net도 추가로 허용한다고 하시면~


<?php
$allowed_referers = [
    "https://cafe.naver.com/",
    "https://cafe.daum.net/"
];

$referer_ok = false;
if (isset($_SERVER['HTTP_REFERER'])) {
    foreach ($allowed_referers as $allowed_referer) {
        if (strpos($_SERVER['HTTP_REFERER'], $allowed_referer) !== false) {
            $referer_ok = true;
            break;
        }
    }
}

if (!$referer_ok) {
    header("Location: /restricted.html");
    exit;
}
?>

안녕하세요...

 님

 

해당 부분은 별도의 서버 언어를 수정할 필요 없이 extend 를 활용해 구현할 수 있습니다.

extend 폴더에 파일을 아무 이름으로 만들어 주시거나 cafe_referrer_check.extend.php 이렇게 찾기 쉽게 이름으로 만들어 주세요

 

그리고 아래 코드만 넣어주시면 끝입니다.

 


 
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
 
// 관리자는 체크하지 않음
if ($is_admin) return;
 
// 네이버 카페 도메인 체크
$referrer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '';
$allowed_referrer = 'cafe.naver.com';
 
// 리퍼러가 없거나 네이버 카페가 아닌 경우
if (empty($referrer) || strpos($referrer, $allowed_referrer) === false) {
    // 특정 페이지는 제외 (선택사항)
    $current_url = $_SERVER['REQUEST_URI'];
    $except_urls = array('/bbs/login.php', '/bbs/register.php'); // 예외 URL 목록
   
    foreach ($except_urls as $except_url) {
        if (strpos($current_url, $except_url) !== false) return;
    }
   
    // 경고 메시지 출력
    echo "<script>alert('네이버 카페를 통해서만 접속 가능합니다.');</script>";
    exit;
}

 

답변을 작성하시기 전에 로그인 해주세요.
전체 405
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT