Передний контроллер PHP для включения файла из другой папки, если он не существует

Я создаю передний контроллер 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' 

person FireFoxII    schedule 01.02.2017    source источник
comment
Я не уверен, что понимаю ваш вопрос (потому что я пьян), но пути включения относятся к текущему файлу, в котором вы находитесь. Поэтому убедитесь, что все ваши включения похожи на require_once dirname(__FILE__) . '../blah'. В основном просто используйте direname и константу __FILE__ для создания абсолютных путей на основе текущего файла.   -  person bassxzero    schedule 01.02.2017
comment
Я думаю, вы не можете называть их абсолютными путями, если они основаны на текущем файле. Итак... относительные пути на основе текущего файла   -  person bassxzero    schedule 01.02.2017
comment
Я не могу использовать абсолютный путь, потому что если в Лондоне есть собственный subfolder/page.php , я хочу, чтобы этот файл использовался... С абсолютным путем я всегда использую subfolder/page.php< /b> из папки Rome... А этого я не хочу... P.S. Извините за мой английский   -  person FireFoxII    schedule 01.02.2017
comment
Мой совет: выведите содержимое $path и посмотрите, что там.   -  person MarkSkayff    schedule 01.02.2017
comment
Почему это? Путь всегда www/root/london/index.php   -  person FireFoxII    schedule 01.02.2017