Extra Form
PHP PHP 7.4
CMS Rhymix 2.1

라이믹스의 레이아웃에서 외부페이지(html,php)를 include 하여 사용하고 있습니다.

 

그런데 외부페이지를 레이아웃의 mid 가 아닌 실제 주소로 접속시

html은 You don't have permission to access ~~~~ on this server. 에러가 발생하며 불러올 수 없는데, 

PHP 파일은 개별적으로도 잘 접속됩니다.

 

궁금한 점은 같은 폴더에 있는 HTML 은 자동으로 차단이 되는데 PHP는 왜 차단이 안되는 걸까요? 

 

자동으로 차단이 안되는 외부페이지는

 

if(!defined('__XE__'))

{

exit();

}

 

설정을 하면 안전할까요?

 

 

  • profile

    외부페이지가 어떤 경로에 들어 있는지에 따라 다릅니다.

     

    레이아웃이나 모듈 스킨 등의 소스 파일과 유사한 경로에 .html 파일이 들어 있다면, XE 때부터 내려온 유서깊은(?) .htaccess 규칙에 의해 접근이 차단됩니다. 레이아웃이나 스킨의 소스 파일이 노출되면 곤란하니까요.

     

    그 밖의 경로에 있는 .html 파일은 차단되지 않는 것이 일반적입니다. 경로 불문 .php 파일도 마찬가지고요. 직접 호출되어서는 안 되는 .php 파일이라면 맨 위에 <?php if(!defined('__XE__')) exit(); ?> 한 줄 붙이는 것이 관례이지요. 라이믹스라면 라이믹스에만 존재하는 RX_VERSION 등의 상수를 조건으로 걸어도 되고요.

  • profile ?
    기진곰님의 답변에 감사드립니다.

    본문에 적어놓았듯 html 과 php 는 같은 레이아웃 경로에 있습니다.
    경로 : /www/layouts/Imagemonster/
    그 밖의 경로에 있는 파일은 차단되지 않는 것은 이해하고 있습니다.

    지금 좀 답변을 듣고 헷갈리는게 있는데, .htaccess 규칙에 의해 접근이 차단될 때

    1. html은 차단되고 php도 차단 되는게 정상이다.
    2. html은 차단되고 php은 차단 되지 않는게 정상이다.

    둘 중 어느게 맞을까요?

    또 만일 1번이 맞다면, 지금 2번과 같은 제 상황은 왜 발생하는 것일까요?
  • ? profile

    2번입니다. php라면 상수 체크해서 exit하는 코드를 넣어야 합니다.

  • profile ?
    감사합니다. 개념이 없었는데 큰 도움이 되었습니다.