Хотя это почти слишком связано с моим вопросом здесь , я спрошу, как изменились мои "вопрос" и намерение.
Что является "лучшим" ( точно,последовательный, эффективный ) способ получения «способной к маршрутизации» части URI.Под этим я подразумеваю часть URI, представляющую виртуальные каталоги, которые будут использоваться при маршрутизации приложения PHP-приложения.Например:
Физический путь начальной загрузки: c:/xampp/htdocs/path/to/app/index.php
Путь к корневому веб-сайту: c:/xampp/htdocs/
С учетом следующегозапрос:
http://localhost/path/to/app/foo/bar/baz/
Ожидаемый результат:
foo/bar/baz/
... но $_SERVER['REQUEST_URI']
содержит:
path/to/app/foo/bar/baz/
Раньше я использовал $_GET['_uri']
в сочетании с mod_rewrite
, вот так:
# conditions
RewriteRule ^(.*)$ index.php?_uri=$1 [L,QSA]
Но сейчас переключаюсьпросто:
# conditions
RewriteRule ^.*$ index.php [L,QSA]
И до сих пор получилось что-то вроде этого:
// get physical uri part, relative to doc root
$uriPhysical = trim(strtr(dirname($_SERVER['SCRIPT_NAME']), '\\', '/'), '/') . '/';
// get full request uri, strip querystring
$uriLong = trim(strtr(substr($_SERVER['REQUEST_URI'], 0, strpos($_SERVER['REQUEST_URI'], '?')), '\\', '/'), '/') . '/';
// chop the physical part off the beginning
$uriRoute = preg_replace('%^' . preg_quote($uriPhysical, '%') . '%i', '', $uriLong);
Я прыгал через обруч пула ни за что?Есть ли более простой способ сделать это?