# Updating app from cake 2 to cake 3

**URL:** <https://discourse.cakephp.org/t/updating-app-from-cake-2-to-cake-3/2735>\
**Category:** Need Help\
**Created:** [June 19, 2017, 9:44am UTC](https://discourse.cakephp.org/t/updating-app-from-cake-2-to-cake-3/2735 "2017-06-19T09:44:21Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![httpix](https://yyz1.discourse-cdn.com/flex029/user_avatar/discourse.cakephp.org/httpix/32/662_2.png) [@httpix](https://discourse.cakephp.org/u/httpix)\
**Post date:** [June 19, 2017, 9:44am UTC](https://discourse.cakephp.org/t/updating-app-from-cake-2-to-cake-3/2735/1 "2017-06-19T09:44:21Z")

</div>

Hello,  
I have a application built with Cake 2. Now I updated it to use Cake 3.

The problem I have is the url. In the old app I had url like this: `/products/page:2/color:white+black/gender:female`.  
In the updated version the url changed, is like this:  
`/products?page=2&color=white+black&gender=female`

I want to keep the same url format as in version 2 (for seo reason). How can I achieve this with Cake 3?

---

<div class="post-metadata">

**Author:** ![joris](https://yyz1.discourse-cdn.com/flex029/user_avatar/discourse.cakephp.org/joris/32/338_2.png) [@joris](https://discourse.cakephp.org/u/joris)\
**Post date:** [June 19, 2017, 10:48am UTC](https://discourse.cakephp.org/t/updating-app-from-cake-2-to-cake-3/2735/2 "2017-06-19T10:48:07Z")

</div>

I’m not a core developer but as far as i know your only option is to implement your own PaginatorComponent and PaginatorHelper.

---

<div class="post-metadata">

**Author:** ![dakota](https://yyz1.discourse-cdn.com/flex029/user_avatar/discourse.cakephp.org/dakota/32/1421_2.png) [@dakota](https://discourse.cakephp.org/u/dakota)\
**Post date:** [June 19, 2017, 3:53pm UTC](https://discourse.cakephp.org/t/updating-app-from-cake-2-to-cake-3/2735/3 "2017-06-19T15:53:20Z")

</div>

CakePHP 3 only uses query parameters for routing and it’s not possible to use the old format.

---

<div class="post-metadata">

**Author:** ![riddlemd](https://yyz1.discourse-cdn.com/flex029/user_avatar/discourse.cakephp.org/riddlemd/32/643_2.png) [@riddlemd](https://discourse.cakephp.org/u/riddlemd)\
**Post date:** [June 23, 2017, 5:10pm UTC](https://discourse.cakephp.org/t/updating-app-from-cake-2-to-cake-3/2735/4 "2017-06-23T17:10:35Z")

</div>

The named variables have been deprecated because they were solving a problem that did not exist and caused serious SEO issues. Your best option is write a custom [RouteClass](https://book.cakephp.org/3.0/en/development/routing.html#custom-route-classes) that will parse the url for named variables and turn them into query params that Cake3 expects.

EDIT

Here’s a route I made that turns the old named param urls from cakephp2 into query routes for cakephp3 consumption: [https://bitbucket.org/snippets/riddlemd/b9x88](https://bitbucket.org/snippets/riddlemd/b9x88)
