You can use Seam's inbuilt URL rewriting, or if you'd like more flexibility in the rewrite rules, you can use the UrlRewriteFilter from http://tuckey.org/urlrewrite/. Examples of both below:
Seam's inbuilt rewriting (which prob uses the tuckey filter under the covers anyway)
First enable the url rewriting in the components.xml file
<web:rewrite-filter view-mapping="*.seam"/>
Next, add the rewrite rules to the pages.xml file
<page view-id="/home.xhtml">
<rewrite pattern="/home/{category}/{sub-category}/{sub-sub-category}" />
</page>
In this case, an incoming url served as
/home/vehicles/cars/fords
Will be served as if it was a request for
/home.seam?category=vehicles&sub-category=cars&sub-sub-category=fords
In the same way, outbound url's will be converted if the page has the named request params available.
Or you could use the Tucky UrlRewriteFilter as follows
Add the Tuckey UrlRewriteFilter jar to your project which you can grab from here
http://tuckey.org/urlrewrite/
Next add the filter your your web.xml file
<filter>
<filter-name>UrlRewriteFilter</filter-name>
<filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>UrlRewriteFilter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>
Finally add a file called urlrewrite.xml to your WEB-INF dir. This file will define your rewrite rules. You will probably want to be somewhat familiar with regex. The file should looks as follows
^/home.seam?category=(.)&sub-category=(.)&sub-sub-category=(.*)$
/home/$1/$2/$3
<rule match-type="wildcard">
<from>/home\/$1\/$2\/$3</from>
<to type="redirect">/home.seam?category=$1&sub-category=$2&sub-sub-category=$3</to>
</rule>
Seam doco is here - Seam documentation
Tucky UrlRewriteFilter doco is here - Tuckey RewriteFilter doco