Adding a trailing slash to requested URLs

Here’s the problem:

Some search engines remove the trailing slash from urls that look like directories – e.g. Yahoo does it for example.

However, you might find that this could result into duplicated content problems when the same page content is accessible under different urls.

And clearly you don’t want that.

But if you’re using Apache on your web server, there’s a simple solution.

Let’s have a look at an example: enarion.net/google/ is indexed in Yahoo as enarion.net/google – which would result in two urls with the same content.

Solution:

The solution is to create a .htaccess rewrite rule that adds the trailing slashes to these urls. Example – redirect all urls that do not have a trailing slash to urls with a trailing slash:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !example.php
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://domain.com/$1/ [L,R=301]

Explanation of the add trailing slash .htaccess rewrite rule:

The first line tells Apache that this is code for the rewrite engine of the mod_rewrite module of Apache. The 2nd line sets the current directory as page root. But the interesting part is:

RewriteCond %{REQUEST_FILENAME} !-f

makes sure that existing files will not get a slash added. You shouldn’t do the same with directories since this would exlude the rewrite behaviour for existing directories. The line

RewriteCond %{REQUEST_URI} !example.php

exludes a sample url that should not be rewritten. This is just an example. If you do not have a file or url that should not be rewritten, remove this line. The condition:

RewriteCond %{REQUEST_URI} !(.*)/$

and finally fires when a url does not contain a trailing slash.

Now we need to redirect the urls without the trailing slash: pre> RewriteRule ^(.*)$ http://domain.com/$1/ [L,R=301] does the 301 redirect to the url, with the trailing slash appended.

You should replace domain.com with your url. Make sure that you stick with the right domain name; if unsure, have a look at this article.

Pretty cool, eh?

This article was referenced with gratitude from enarion.net.

This entry was posted in SEO News & Tips and tagged , , , , , , , , . Bookmark the permalink. Post a comment or leave a trackback: Trackback URL.

3 Comments

  1. Posted October 3, 2010 at 9:36 am | Permalink

    Pretty good post. I just stumbled upon your blog and wanted to say that I have really enjoyed reading your blog posts. Any way I’ll be subscribing to your feed and I

    hope you post again soon.

  2. Posted October 4, 2010 at 3:33 pm | Permalink

    Thanks. Glad you liked it. Hope it was helpful ;)

  3. Posted June 13, 2011 at 9:44 am | Permalink

    Here’s something for those who want a trailing slash, but may have multiple domains.

    RewriteCond %{REQUEST_URI} !/$
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule (.*) $1/ [L,R=301]

    Hope that helps someone.

Post a Comment

Your email is never published nor shared. Required fields are marked *

*
*

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>