.htaccess

How to Add a Trailing Slash to URLs in CakePHP

I’m building more web projects but found out that Content management System (CMS) that I normally use like WordPress, phpMyDirectory and others does not fulfill my needs. I’ve learned about PHP Framework such as CakePHP & decide to try it. With PHP Framework, I can build my own CMS. After many hours of working with it, I get it to works as per my needs.

My first CakePHP project completed but find out that many of the URLs generated does not have trailing slash. There is speculation that it is important for SEO. To do this you have to modify 2 files.

1. /app/View/Helper/AppHelper.php

Add the following codes in AppHelper.php. You can add more extension if you use it in order to avoid trailing slash inserted after the extension.

class AppHelper extends Helper {

function url($url = null, $full = false) {
        $routerUrl = Router::url($url, $full);
        if (!preg_match('/\\.(rss|html|js|css|jpeg|jpg|gif|png|xml?)$/', strtolower($routerUrl)) && substr($routerUrl, -1) != '/') {
            $routerUrl .= '/';
        }
        return $routerUrl;
    }

}

2. /app/webroot/.htaccess

Need to modify .htaccess file so that non trailing slashed URLs will be redirected to trailing slashed URLs. This is to avoid duplicate content, which is not good for SEO. This code is not limited to CakePHP, you can you for any other purpose.

<IfModule mod_rewrite.c>
 # Add trailing slash
 RewriteEngine On
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
 RewriteRule ^(.*)$ http://www.yourwebsite.com/$1/ [L,R=301]
</IfModule>

How to Redirect 404 Not Found Page Using .htaccess

Recently, I moving one of my website from WordPress CMS to normal static html. I found out that there are too many 404 not found errors.

One of the solutions is to redirect it to more meaningful page, especially the Homepage. Although some people may argue, the usefulness of the redirects. However, I prefer to do so on some of my websites.

To do this I need to edit “.htaccess” which located at the root folder of the particular website. If you are unable to see the file, make sure you allow to view hidden files since “.htaccess” is a hidden file. If it still not there, then create it.

The following procedure, guides on how to redirect.

  1. If you are using cPanel, log into front-end and click on “File Manager” application. Make sure you enable the hidden file viewers.
  2. Go to the root folder of the website & edit or create “.htaccess” file.
  3. Add the following code & replace YOURURL with the URL where you want the error 404 page redirected to.
  4. Click save & you are done.
ErrorDocument 404 http://YOURURL