Вам необходимо знать, каков путь к файлу скрипта.Вы можете сделать это, явно объявив префикс пути или определив его автоматически, например:
$basePath = dirname($_SERVER['SCRIPT_NAME']);
Затем вы можете использовать этот префикс и убрать его из пути URI запроса:
if (substr($requestPath, 0, strlen($basePath)+1) === $basePath.'/') {
$path = substr($requestPath, strlen($basePath));
} else {
$path = $requestPath;
}
Кстати: было бы лучше, если бы вы не передавали путь URI запроса явно в index.php , а извлекали его из $_SERVER['REQUEST_URI']
:
$_SERVER['REQUEST_URI_PATH'] = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
$_SERVER['REQUEST_URI_QUERY'] = parse_url($_SERVER['REQUEST_URI'], PHP_URL_QUERY);
И соответствующее правило mod_rewrite:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [L]