Я пишу простой метод для сопоставления маршрутов с файлами, и я натолкнулся на два способа сделать это.
Первый, и я полагаю, используется большинством фреймворков, использует $ _SERVER ['REQUEST_URI'] переменная для извлечения всего после index.php:
RewriteRule ^(.*)$ index.php [QSA,L]
Второй способ используется в Drupal, и маршрут просто передается в виде строки запроса.
RewriteRule ^(.*)$ index.php?q=$1 [QSA,L]
Теперь, «путь Drupal» кажется мне намного проще.При использовании другого метода вам нужно будет использовать «explode» как для $ _SERVER ['REQUEST_URI'], так и для $ _SERVER ['SCRIPT_NAME'], а затем использовать что-то вроде array_diff_assoc для удаления имени скрипта и имени подкаталога, если таковой имеется.Это не так много работы, но если с помощью Drupal вы можете просто извлечь значение $ _GET ['q'], почему никто так не поступает?Каковы недостатки, если таковые имеются?
Спасибо.