Я создаю передний контроллер php, потому что мне нужно включить файл из других папок, а не создавать один и тот же файл для тех, у которых такой же контент.
Пример структуры каталогов
[root]
- start.php
[rome]
- index.php
[subfolder]
- page.php
[london]
(no file)
Вот содержимое файла
index.php
require '../start.php';
start.php
require 'subfolder/page.php';
И rome/index.php правильно показывает page.php...
Теперь в лондонской папке это htaccess/front-controller
.htaccess
RewriteEngine On
RewriteRule . front-controller.php [L]
front-controller.php
$path = $_SERVER['DOCUMENT_ROOT'].$_SERVER['REQUEST_URI'];
if (! file_exists ($path) ) include str_replace("london" , "rome" , $path );
Когда я звоню в london/index.php, ответ
Warning: require(subfolder/page.php): failed to open stream: No such file or directory in ...
Fatal error: require(): Failed opening required 'subfolder/page.php'
require_once dirname(__FILE__) . '../blah'
. В основном просто используйте direname и константу__FILE__
для создания абсолютных путей на основе текущего файла. - person bassxzero   schedule 01.02.2017