I use the following url mapping in Grails:
"/$id"{
controller = "user"
action = "show"
}
to map urls like mydomain.com/someusername
How do I attach constrains to the url mapping to exclude keywords like "login", "logout",...
I.e., mydomain.com/someusername should route to mydomain.com/user/show/someusername, mydomain.com/login should not route to mydomain.com/user/show/login.
I have done this type of thing for REST based endpoints numerous times, and Grails is smart enough to figure out what you want. Note that ordering in the UrlMappings file may be important.
For example, you can define this:
Then when you hit "/login" you will go in the auth:login method, but when you hit "/userid" you will be sent to user:view:userid as expected.
You can use contrainsts for this mapping:
Use a filter, and redirect from it.
If you want to make it specific to a controller or action, use its name instead of the
'*'
.Read more: