외부페이지의 실제 주소로 접속시 차단되지 않는 확장자
CMS/프레임워크 | Rhymix 2.1 |
---|---|
개발 언어 | PHP 7.4 |
라이믹스의 레이아웃에서 외부페이지(html,php)를 include 하여 사용하고 있습니다.
그런데 외부페이지를 레이아웃의 mid 가 아닌 실제 주소로 접속시
html은 You don't have permission to access ~~~~ on this server. 에러가 발생하며 불러올 수 없는데,
PHP 파일은 개별적으로도 잘 접속됩니다.
궁금한 점은 같은 폴더에 있는 HTML 은 자동으로 차단이 되는데 PHP는 왜 차단이 안되는 걸까요?
자동으로 차단이 안되는 외부페이지는
if(!defined('__XE__'))
{
exit();
}
설정을 하면 안전할까요?
댓글 4
외부페이지가 어떤 경로에 들어 있는지에 따라 다릅니다.
레이아웃이나 모듈 스킨 등의 소스 파일과 유사한 경로에 .html 파일이 들어 있다면, XE 때부터 내려온 유서깊은(?) .htaccess 규칙에 의해 접근이 차단됩니다. 레이아웃이나 스킨의 소스 파일이 노출되면 곤란하니까요.
그 밖의 경로에 있는 .html 파일은 차단되지 않는 것이 일반적입니다. 경로 불문 .php 파일도 마찬가지고요. 직접 호출되어서는 안 되는 .php 파일이라면 맨 위에 <?php if(!defined('__XE__')) exit(); ?> 한 줄 붙이는 것이 관례이지요. 라이믹스라면 라이믹스에만 존재하는 RX_VERSION 등의 상수를 조건으로 걸어도 되고요.
본문에 적어놓았듯 html 과 php 는 같은 레이아웃 경로에 있습니다.
경로 : /www/layouts/Imagemonster/
그 밖의 경로에 있는 파일은 차단되지 않는 것은 이해하고 있습니다.
지금 좀 답변을 듣고 헷갈리는게 있는데, .htaccess 규칙에 의해 접근이 차단될 때
1. html은 차단되고 php도 차단 되는게 정상이다.
2. html은 차단되고 php은 차단 되지 않는게 정상이다.
둘 중 어느게 맞을까요?
또 만일 1번이 맞다면, 지금 2번과 같은 제 상황은 왜 발생하는 것일까요?
2번입니다. php라면 상수 체크해서 exit하는 코드를 넣어야 합니다.