5

Grails で次の URL マッピングを使用します。

"/$id"{
  controller = "user"
  action = "show"
}       

mydomain.com/someusernameのような URL をマップするには

「ログイン」、「ログアウト」などのキーワードを除外するために、URL マッピングに制約を追加するにはどうすればよいですか?

つまり、mydomain.com/someusername は mydomain.com/user/show/someusername にルーティングする必要があり、mydomain.com/login は mydomain.com/user/show/login にルーティングしないでください。

4

3 に答える 3

14

このマッピングには制約を使用できます。

"/$id"{
  controller = "user"
  action = "show"
  constraints {
    //add a validator for $id from url mapping
    id(validator: {
        return !(it in ['login', 'logout'])
    })
  }
}    
于 2013-06-09T15:59:07.587 に答える
2

filterを使用して、そこからリダイレクトします。

class UrlMappingFilters {
    def filters = {
        filterUrlKeywords(controller: '*', action: '*') {
            def keywords = ['login', 'logout']
            before = {
                if (params.id in keywords) {
                    // redirect to start, or render error...
                    redirect(uri: '/')
                    return false
                }
            }
        }
    }
}

コントローラーまたはアクションに固有のものにしたい場合は、 の代わりにその名前を使用し'*'ます。

続きを読む:

于 2013-06-09T13:59:45.400 に答える