Actually your first one does not cover /app/ because the placeholder is not
optional. To make it optional you can give it a default (see
https://metacpan.org/pod/Mojolicious::Guides::Routing#Optional-placeholders)

-Dan

On Sun, Mar 10, 2019 at 2:58 PM Adam Hopkins <[email protected]>
wrote:

> So that makes sense that under routes need to have routes under them to be
> the final destination. I guess I thought that
>
> $session_auth_route->get('/*')->to(controller => 'app', action => 'index'
> );
>
> Would cover both /app/ and /app/*.
>
> I tried what I think you meant:
>
>
> $session_auth_route->get()->to(controller => 'app', action => 'index');
>
>
> And that only seemed to match /app, but nothing after /app/.
>
> On Sunday, March 10, 2019 at 1:42:00 PM UTC-5, Dan Book wrote:
>>
>> Under routes do not match on their own. They must have routes under them
>> to be the final destination of the route. If you don't have any routes
>> under /app, then just make it a regular ->get.
>>
>> -Dan
>>
>> On Sun, Mar 10, 2019 at 2:03 PM Adam Hopkins <[email protected]>
>> wrote:
>>
>>> I have an authenticated part of my app, where I want all paths under
>>> "/app*" to go to the same action. I thought I could do this with only one
>>> route, but I seem to need two:
>>>
>>> my $session_auth_route = $app->routes->under('/app' => sub ($c) {
>>>     return 1 if $c->is_session_authenticated;
>>>
>>>
>>>     $c->redirect_to('/');
>>>     return;
>>> });
>>>
>>>
>>> # without this, /app alone will not match
>>> $session_auth_route->get('/')->to(controller => 'app', action => 'index'
>>> );
>>>
>>>
>>> # I thought this would cover /app and /app/whatever, but it only works
>>> when there is more after /app in the path
>>> $session_auth_route->get('/*')->to(controller => 'app', action =>
>>> 'index');
>>>
>>> Is there a better way to get this working with only one route that will
>>> match everything under /app and including /app?
>>>
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "Mojolicious" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>> To post to this group, send email to [email protected].
>>> Visit this group at https://groups.google.com/group/mojolicious.
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>> --
> You received this message because you are subscribed to the Google Groups
> "Mojolicious" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at https://groups.google.com/group/mojolicious.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Mojolicious" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/mojolicious.
For more options, visit https://groups.google.com/d/optout.

Reply via email to