특정 도메인에서만 접속이 가능하도록...
본문
혹시 제 홈페이지를 운영중인네이버카페를 통해서만
접속되게하려고합니다.
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;
}
?>
안녕하세요...
@개애비 님
해당 부분은 별도의 서버 언어를 수정할 필요 없이 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;
}
!-->