Permalinks on hosted blog

If you don’t know what Permalinks are, let me explain. Whenever you create a post or page on WordPress, that page will have a name that shows up in the address bar.

On a WordPress.com hosted blog, they are already set to show page and post titles. You also have the ability to modify the Permalink when you create a post, just in case your title is very long. The year month and day is also shown in the URL. Overall this is pretty good, and there is probably no need to change this. On a self hosted WordPress blog, this is not the case.

By default, a self hosted WordPress site will give each page or article a page number, for example: http://www.myblog.com/?p=123. Although this is functional, it doesn’t look pretty in the address bar, and if you only see the link, it gives no indication of what content is on the page. Also, having a good page title can improve search engine optimization for Google. This is where the option to change Permalinks comes in.

Under the Settings, Permalinks option in the WordPress Dashboard, you can change these settings to a few other options that can give you a more meaningful URL. For example, you can choose:

Day and Name:  – http://www.myblog.com/index.php/2010/03/30/sample-post/

Month and Name:  – http://www.myblog.com/index.php/2010/03/sample-post/

Numeric:  – http://www.blog.sketchtopixels.com/index.php/archives/123

Custom Structure: –  (whatever you want)

If you want to modify this, it is best to do it shortly after installing WordPress, or fairly soon after. The reason is someone may bookmark an article you wrote, and if you change the permalinks later, that will break the link.

With all of this in mind, I decided to jump in and change the Permalinks on my blog. Since my blog mostly consists of pages rather than posts, I decided to use the code /%postname%/ under the Custom setting, rather than the other options. I found the code snippet on this page: http://codex.wordpress.org/Using_Permalinks

After adding the new code in the Custom Structure box and saving the changes, I thought that would be it. I went to my site and started clicking the links. The new titles were showing up in the address bar as expected, but the page wasn’t. Now what?

After doing some searches on Google, I found I was not alone with this problem. However, fixing the problem seemed to require modifying back end code, server files etc. Since I get nervous modifying back end PHP files, I decided to contact my service provider ISQ Solutions. They have always been very helpful in the past,  so I asked them for their opinion.

They quickly replied with this:

Try this link:

http://www.micronovae.com/ModRewrite/articles/CleanPermalinksWordpress.html

We enabled mod_rewrite for blog.sketchtopixels.com

I looked at the post and began to worry at all the steps involved and the special coding, but realized that not all of the code or steps applied to my situation.

First, I had to add a line of code to the top of this page: “wp-settings.php” under this bit of code: <?php:

Here is the code:

$_SERVER['REQUEST_URI'] = $_SERVER['HTTP_X_ORIGINAL_URL'];

I also had to upload a file called: “.htaccess” with this code inside:


# BEGIN WordPress
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule . index.php [L]

# END WordPress

After doing these two relatively easy steps, I checked to see if everything was working OK, and was relieved to see everything was working just fine. Before jumping in to do this on your own blog, I would like to point out that just because this worked on my blog does not mean it will work on everyone’s blog. The reason it worked with mine is because my host was using IIS, and gave me link to an IIS solution, and also had to enable “mod_rewrite”.

Now that this site was done, it was time to change the Permalinks on my personal blog. This did not go as well. I did all the same modifications, then contacted my host at CrystalTech to do whatever they needed to do. However, this was the response I received:

Tech support: Your domain is on a Business Expansion plan which does not include the feature for permalinks. The plan would need to be upgraded to an intermediate or higher plan”.

Not the answer I was expecting. Since I didn’t feel like paying more for hosting on my personal blog, I just decided to leave my links the way they were.

I guess you can’t win every time, but it was a valuable learning experience. You need to have a good host when you run a WordPress site, and the cheaper they are, the less they offer – unless you upgrade.

On a final note, I created a WordPress site using GoDaddy as the host provider, and everything just worked. No need to contact the host provider, no need to change any PHP code, and no need to upgrade my hosting plan; it just worked.

If you are thinking of hosting a WordPress site, see what hosts WordPress.org recommends, because it will help avoid hassles like this.

One Comment

Comments are closed.