my_redirect.route:
path: '/my/{tail}'
defaults:
_controller: '\Drupal\my_redirect\Controller\MyRedirectController::redirect'
_title: 'My Redirect'
requirements:
_permission: 'access content'
namespace Drupal\my_redirect\Controller;
use Drupal\Core\Controller\ControllerBase;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\HttpFoundation\Request;
class MyRedirectController extends ControllerBase {
public function redirect($tail, Request $request) {
$current_user = \Drupal::currentUser();
if ($current_user->isAuthenticated()) {
$uid = $current_user->id();
$destination = "/user/$uid/" . $tail;
return new RedirectResponse($destination);
}
return new RedirectResponse('/user/login');
}
}