Как я уже упоминал в комментариях, без четко определенной спецификации относительно того, какими будут URL-адреса изображения, нет всеобъемлющего способа решить эту проблему.Даже YouTube (связанный с библиотекой , с которой вы связаны ) использует URL-адреса, такие как /watch?v=h8skj3
, где "watch" - это триггер.
Использование i/r4nd0m$tring
сделало бы это проблемой, и это то, что я предлагаю, но у меня была другая идея:
$route['(:any)'] = "image/$1";
// Re-Route all valid controllers
foreach (array('users', 'login', 'blog', 'signup') as $controller)
{
$route[$controller] = $controller;
$route[$controller.'/(:any)'] = $controller.'/$1';
}
unset($controller);
Возможно, вам понадобится последний маршрут изображения, я 'Я не уверен на 100%.Это должно направить все в image/
, кроме определенных вами контроллеров.Вы даже можете использовать glob()
или что-то еще, чтобы сканировать каталог контроллера на наличие файлов PHP для заполнения массива.
Другой способ получить один символ короче i/string
может состоять в использовании символьного триггера, например example.com/*randomstring
, но это немного глупо, i/
намного чище и, очевидно, проще в развертывании.