Redirect Default CakePHP Pagination URL to SEO Friendly URL with .htaccess

In the previous post, I post a guide on how to create SEO friendly URL in CakePHP pagination.

However, if you already use default CakePHP pagination prior to that, you want to redirect the old pagination URL to the new SEO friendly URL.

I’m using .htaccess file to accomplish this.

Let’s take an example, by default we will have pagination URL like this

http://www.website.com/post
http://www.website.com/post/page:2
http://www.website.com/post/page:3
...

we would like to redirect to

http://www.website.com/post
http://www.website.com/post/page/2
http://www.website.com/post/page/3
...

To redirect, we have to edit .htaccess file located at /app/webroot/.htaccess. Next, add the following code.

RewriteEngine On
RewriteBase /
RewriteRule ^(.+)/page:([0-9]+)/$ /$1/page/$2/ [R=301,L]

2 comments… add one
  • with cakephp 2.7.5 the redirect does not work
    RewriteEngine On
    RewriteRule ^(.+)/page:([0-9]+)/$ /$1/page/$2/ [R=301,L]

    Reply
    • I just update my CakePHP installation to version 2.7.6 & the code above still works. The code that you mention is in .htaccess file. Make sure you edit the right .htaccess file which is located in /app/webroot/ directory.

      Reply

Leave a Comment