## 6.4.6 Mapping Wildcards

Grails' URL mappings mechanism also supports wildcard mappings. For example consider the following mapping:

    static mappings = {
    	"/images/*.jpg"(controller:"image")
    }

This mapping will match all paths to images such as `/image/logo.jpg`. Of course you can achieve the same effect with a variable:

    static mappings = {
    	"/images/$name.jpg"(controller:"image")
    }

However, you can also use double wildcards to match more than one level below:

    static mappings = {
    	"/images/**.jpg"(controller:"image")
    }

In this cases the mapping will match `/image/logo.jpg` as well as `/image/other/logo.jpg`. Even better you can use a double wildcard variable:

    static mappings = {
    	// will match /image/logo.jpg and /image/other/logo.jpg
    	"/images/$name**.jpg"(controller:"image")
    }

In this case it will store the path matched by the wildcard inside a `name` parameter obtainable from the params object:

    def name = params.name
    println name // prints "logo" or "other/logo"

If you are using wildcard URL mappings then you may want to exclude certain URIs from Grails' URL mapping process. To do this you can provide an `excludes` setting inside the `UrlMappings.groovy` class:

    class UrlMappings = {
    	static excludes = ["/images/**", "/css/**"]
    	static mappings = {
    		…
    	}
    }

In this case Grails won't attempt to match any URIs that start with `/images` or `/css`.