I would agree with @10MAY that subdomains are not appropriate here.
Your only solution without subdomains is this one:
User: example.com/johndoe
Business: example.com/uk/acmecorporation
*uk is the country of the business
But why is the country all of a sudden that important (it wasn't for the other examples)?
If you want to go with the standard REST approach, your example should look like this (assuming that users and businesses are completely separate entities[*]):
User: example.com/users/johndoe
Business: example.com/businesses/acmecorporation
It makes sense from a UX/Frontend perspective, as the user directly knows what they are dealing with (johndoe
is a user, acmecorporation
a business), and also from a Backend perspective (example.com/users/johndoe
is the endpoint for getting/changing that user, example.com/users/
the endpoint to list all users or add new users).
[*]
If they are not (for example, a user always belongs to a business), something like this might be more appropriate:
Business: example.com/businesses/acmecorporation
User: example.com/businesses/acmecorporation/users/johndoe
AcmeCorporation
or zoos there be more than just the one?