G5_URL 과 G5_PATH 사용법, 동작특징
본문
현재 비트나미로 http://localhost/ 상에서 작업중입니다
G5_URL 은 출력하면 http://localhost/ 이 나오고
G5_PATH 를 출력하면 C:/Bitnami/wampstack-8.0.3-2/apache2/htdocs 가 나옵니다
그리고
include_once(G5_PATH.'/head.php'); 는 정상동작하지만
include_once(G5_URL.'/head.php'); 는
Warning: include_once(): http:// wrapper is disabled in the server configuration by allow_url_fopen=0 in C:\Bitnami\wampstack-8.0.3-2\apache2\htdocs\index.php on line 7
에러 메시지를 출력합니다
그리고
<script src="<?php echo G5_JS_URL ?>/jquery-3.6.3.min.js" ></script>
위 스크립트 소스에는 URL 경로가 지정되어 동작합니다
1.
include_once(G5_URL.'/head.php'); 가 에러출력하는 이유와
2.
코드 단순화를 위해
include_once(G5_URL.'/head.php'); 를 동작하게 하는 방법이 있는지 궁금합니다
3.
그리고
URL 경로와 PATH 경로를 분리해 사용하는 것이 보안상 이유가 있는 건가요?
답변 3
1.
include_once(G5_URL.'/head.php'); 가 에러출력하는 이유와
-> include 또는 require는 절대경로를 사용해야하므로 G5_PATH 를 사용해야만합니다. 따라서 URL로 파일을 불러올 순 없습니다.
2.
코드 단순화를 위해
include_once(G5_URL.'/head.php'); 를 동작하게 하는 방법이 있는지 궁금합니다
-> 없습니다.
3.
그리고
URL 경로와 PATH 경로를 분리해 사용하는 것이 보안상 이유가 있는 건가요?
-> 보안상의 이유가 아닙니다. 웹서버의 특성이라고 보셔야합니다.
자세한 사항은
절대경로, 상대경로를 웹에서 검색해서 다양한 문서를 정독해보시기 바랍니다.
include 할때는 _path로 끝나는 define 변수를 쓰시고,
페이지 이동이나 img테그에 src를 쓸때는 _url로 끝나는 define 변수나
최상위 폴더부터 내려가는 경로를 쓰면 됩니다.
아니면 include에 $_SERVER['DOCUMENT_ROOT'] 를 쓰면 됩니다.