저는 하나의 도메인에서 www.example.com & www.example.com/site2와 같은 두 개의 웹사이트를 사용하고 있습니다. 내 사이트2, 내 사이트2에는 폴더 이름이 2개 폴더1이고 폴더2가 있다는 것을 알고 싶습니다. 내 index.php는 폴더2에 있지만 폴더2에 정의된 메서드 정의는 .htaccess를 통해 파일을 포함하고 있지만 가져올 수 없습니다. 폴더1에 있고 브라우저에서 오류 500 및 400이 발생하는 파일이 있는데 다음 줄을 사용하고 있지만 .htaccess 파일에서는 작동하지 않습니다.
아래 줄은 잘 작동합니다
RedirectMatch ^/$ http://www.example.com.pk/site2/views/
AllowOverride All
php_value include_path ".:/home/example/public_html/site2/system"
답변1
PHP에서 사용할 메소드와 클래스를 포함하려고 하시나요? 그렇다면 아마도 다음을 사용하고 싶을 것입니다.include() 또는 require() 함수Apache를 통해 수행하는 대신 PHP 코드 내에서 수행하십시오.
귀하의 질문에서 귀하가 달성하려는 목표가 정확히 무엇인지 알 수 없습니다. 포함에 Apache를 사용해야 하는 경우 질문을 확장하여 자세한 내용을 제공하십시오.
답변2
또한 현재 .htaccess 파일에는 파일이 포함되지 않으며 PHP가 사용하는 포함 경로만 설정됩니다. 다음 파일 트리를 상상해 보세요.
root
| - a
| |- myphp.php
| - b
| |- myinclude.extension
PHP 파일 myphp.php에 포함할 때 일반적으로 다음을 수행합니다.
<?php include('../b/myinclude.extension'); ?>
하지만 설정 후
AllowOverride All php_value include_path "root/b/"
당신은 입력하기 만하면됩니다
<?php include('myinclude.extension'); ?>
하지만 그건 사실 큰 차이를 가져오지 않죠? php.net 페이지에서 include, require 및 include_once, require_once에 대해 읽어보세요.