Detailed .HTACCESS Setup Information for WordPress Blogs
Today’s guide is going to cover creating and setting up an .HTACCESS file for your web server and blog. This will allow you to create custom rules for how traffic and server requests to your site are handled.
I have broke the guide into sections based on questions I had when going through this project and learning how to configure the .htaccess file myself. You can follow the entire guide if you would like a detailed overview or read the title of each section to find the information you need.
(WARNING: Always backup your HTACCESS file before making any changes. This way if a change you make affects rules that are already in use they can be restored.)
01. What is HTACCESS and what does it do?
The .htaccess file is the default name of a configuration file that specifies rules for the way in which requests to a web server are handled. This can be something as simple as a 301 redirect from an old page to a new page (in the case that the old page has been removed or renamed) to something as complex as changing the format in which permalinks are displayed on your site.
It can also cover advanced functions like blocking specific IP addresses, or specifying file permissions on the web server.
02. How can I create and setup an .htaccess file
To setup an .htaccess file you need to first create the file itself. To create the .htaccess file, “right click” on your desktop and select the “New” > “Text Document” option.
Once you have created this file name it “htaccess.txt”. We will be changing this later but you need to do this to create a file we can edit. If you try to add the period before the file name (which is needed when the file is on your server) you will get a Windows error message that states.
** Rename ** You must type a file name
The reason this happens is because Windows will not handle files that start with a period, but unix and linux systems will. The htaccess file is a common component found on Apache web servers which are usually loaded on these types of systems.
To get around this we will make our changes to htaccess.txt in Windows, and then upload this file to the web server where we will rename it to .htaccess
To create a basic rule set for your .htaccess file you will need to copy the following code into the top of your text file.
RewriteEngine on
Followed by whatever rules you would like to assign for how your webserver should handle various requests. For our example lets assume you have an old website with a bunch of articles that you have converted into a blog.
To redirect traffic from existing links that point toward old HTML files, and send them through to the main page of your new site you could use the following command in your .htaccess file.
RewriteEngine on
RewriteRule ^([a-z]+).html$ /directory/newpage.html [R,NC,L]
Where /directory/newpage.html would be the location where you would like to send this traffic.
In the above example the carrot ^ designates that the base directory of your site is where the .htaccess file is located. (example www.yoursite.com). The .htaccess file must be located in the root directory of your website to work properly.
The $ indicates the closing of the rule or function you are specifying in your file.
You will see these used in other rules that can be used in the .htaccess file. For a comprehensive list of these commands and rules check the following link:
HTACCESS Configuration, Rules and Settings
The web server I was working on was a friend’s website which is hosted by Netfirms. If you are working with an htaccess file on a Netfirms account refer to the following documentation for examples of htaccess commands.
Netfirms HTACESS Command Examples
03. Windows will not let me create a file beginning with a period? What do I do?
As I mentioned above this is not a problem. The way to get around this is to take the htaccess.txt file we created and to copy it to the root directory of your web server via FTP. (of however you transfer your files.) Once the file has been transferred to your webserver it can be renamed to “.htaccess” because it is no longer on a Windows system.
Make sure that if you have an existing .htaccess file on your web server that you back it up. You don’t want to lose the file by overwriting it as it may already be specifying rules that are in use on your server. This is almost definitely the case if you are running a blog.
04. When I uploaded my .htaccess file the links to articles on my blog stopped working!?! HELP!
Uh oh! It sounds like you overwrote the existing htaccess file on your web server. Not to worry…
WordPress will create an htaccess file on your web server by default when you specify any custom permalink structures for your blog. This means if you have gone with the /%postname%/ option a lot of authors recommend, WordPress will have written a custom htaccess file to implement this permalink structure throughout your site.
To resolve this issue you need to recreate this file so the article links will work again. This can be done by going into your blogs admin panel, and selecting the “Settings” > “Permalinks” and clicking “Save Changes”. This should recreate your WordPress htaccess file and restore your broken links.
05. WordPress is overwriting my .htaccess file?
Yes. WordPress will overwrite your custom htaccess file if you upload one to your server and then change anything in the permalink options within WordPress, or load a plugin that utilizes these features.
This will cause your htaccess file to be overwritten and you will lose any changes you have made.
06. I need to use custom rules in the .htaccess file in addition to the changes WordPress makes. How can this be done?
You can actually edit the htaccess file that WordPress creates and add your own custom rules to it. This is very helpful if you are maintaining a large site or are converting old HTML documents to a blog format and need to redirect old links.
To do this you first need to generate the WordPress htaccess file. This can be done by following the steps in part #4 of this guide.
(Go into “Settings” > “Permalinks” > and click “Save Changes”)
Once you have done this, you should see an htaccess file appear in the root directory of your webserver. Copy this file to your computer via FTP so that you can edit it on your local machine.
You will notice that since you have copied the file from the web server, it has a file name that starts with a period and Windows will allow you to modify and save this file. (even though it wouldn’t allow us to name the file like this before.)
Open your file in a text editor so that we can make the necessary changes and apply your custom rules.
We are looking for an area in the file that looks like this:
# BEGIN wordpress
<ifmodule mod_rewrite.c>
rewriteEngine On
rewriteBase /
rewriteCond %{REQUEST_FILENAME}!-f
rewriteCond %{REQUEST_FILENAME}!-d
rewriteRule . /index.php [L]
</ifmodule>
# END wordpress
If your code looks different than this it is most likely because your looking at the file in notepad. We will actually need to use a proper text editor to modify this file correctly. If you do not already have one read sections #7 and #8 for a good free PHP editor.
Once you see the block of code I referenced above you will need to make the following change. Add this block of code above the “# BEGIN wordpress” section in the file:
<ifmodule mod_rewrite.c>
RewriteEngine On
CUSTOM RULES ARE ADDED HERE
</ifmodule>
Once you have done this your file should look similar to the example below:
<ifmodule mod_rewrite.c>
RewriteEngine On
redirect 301 /olddirectory/oldpage.htm http://www.newsite.com/
</ifmodule>
# BEGIN wordpress
<ifmodule mod_rewrite.c>
rewriteEngine On
rewriteBase /
rewriteCond %{REQUEST_FILENAME}!-f
rewriteCond %{REQUEST_FILENAME}!-d
rewriteRule . /index.php [L]
</ifmodule>
# END wordpress
The rule above is just an example. For more information on htaccess rules refer to section #2 and the links provided for the proper use of different rules and functions.
Now that you have made the listed changes you can upload the htaccess file back to your web server and overwrite the old one. (As mentioned before always backup the old htaccess file incase something goes wrong.)
The file should now utilize your custom rules in addition to allowing WordPress to update the file as needed without overwriting the changes you made.
The custom rules need to be listed outside of the “# BEGIN wordpress” tag and need to come before this function to avoid being overwritten by WordPress.
You should now be able to test your custom rules by trying to access old files on your server. If run into an issue triple check your rule syntax to make sure it is correct as this could cause a problem.
(Keep in mind that you cannot easily test custom rules by overwriting your WordPress htaccess file with one you created in Windows, because any permalink structures you reference will be destroyed when you overwrite the WordPress generated htaccess file on the server.)
From here any issues you might be running into will most likely need to be researched in Apache help for htaccess or on various forums. Good luck!
The following sections provide additional information on other issues that may come up during the process I outlined, or questions people may have that were not covered in the previous sections.
07. When I open the .htaccess file created by WordPress it is garbled, and shows carriage return characters. (Squares)
It sounds like you are looking at the file right through notepad. To display the information correctly you need to download a proper editor. Since we are working with PHP files for most things with our blog we should download a PHP editor to use with our files.
08. Where can I get free PHP editor software for editing my files?
When I was working on this issue the other day I came across a great free editor called “Arisesoft Winsyntax”. It is a very small download, does everything I need it to do, is easy to use, and is completely free to use.
You can download it from the authors homepage here:
09. I have seen the custom .htaccess code created by WordPress mentioned on other blogs but no one has told me where I need to go to find and edit this code.
The code be located in the custom .htaccess file that WordPress creates on your web server. Follow the steps outlined in section #4 of this guide to create the file.
Once the file appears on your web server in your root directory you will need to download this file to your computer so you can edit it. Open this file in a text editor (as outline in sections #7 and #8 and you will see the code people have been referring to.
10. I am trying to create some custom rules for an old site that I am converting over to blog format, but some of the pages I am trying to redirect are not working. It seems like .htaccess is ignoring these files?
Hmm. It could be a number of things. The main cause I found for this issue is that the file you are trying to reference in your .htaccess file is using characters that are not “web friendly”.
In my friends case they had created file names like index[new].html and new page title.htm
.htaccess really seemed to take issue with the fact that they were using strange chacters like ] [ and spaces in the file names. Always make sure you are using web friendly file names and urls to help minimize potential problems down the road.
Overview
I hope this guide has helped answer some of the questions people may have about creating and setting up the .htacess file. This information can be used for a standard server also, but a lot of the situations I outlined pertain specifically to WordPress blogs.
If you have any questions of comments please feel free to post, and I will try to answer them if I can. I am not an .htaccess guru by any means. I am just outlining the pitfalls I ran into to help others avoid these problems.
Thanks for checking out Pseudorant. We appreciate the support!
Wordpress Stats Plugin is not Working or Gathering Information
WP Stats is not displaying any information for my blog!
If you are a blogger then you probably use the WordPress Stats plugin. For those who don’t, it is a plugin that gathers various statistics from hits to your blog. It gathers information on the number of page views, the most popular posts, search terms people use to find your blog, what sites send send you traffic, and lot of other great stuff.
Now imagine how lost you would be without this information. I recently ran into a situation where this was the case, and after a little research I was able to find out why WP Stats was not working on this particular blog.
I was helping a friend get their blog setup, and we ran into quiet a few issues. They were transferring an old website they barely maintained over to a blog format to make it easier to update and manage the information they already had.
During all the troubleshooting involved in switching the old site over to a blog, I noticed the WordPress Stats plugin was not gathering data. I tried several things to fix this, deactivating and restarting the plugin, re-entering the API key, checking settings in the admin panel and on WordPress.com, uninstalling and reinstalling the plugin, updating the plugin. None of this seemed to work.
Then I came across a post on the WordPress.com forums talking about this issue. Apparently on some themes there is a function that is left out of the footer that is needed for WP Stats to work correctly. If this is the case with your theme, that is probably what is causing the problem. To fix this you need to go into the “footer.php” file in your theme editor.
In the footer.php file scan to the bottom and look for the “</body>” tag [without the “ “]. Once you have found the tag you will need to insert this line of code above it:
<?php wp_footer(); ?>
Once that is done update (save) the file and then test WordPress Stats to see if it is working.
You may want to do this by logging out of your blog admin panel, and them clearing your cookies and temporary internet files. Once you have done this go back to your website and browse through a couple pages and this should generate a couple page views in WP Stats.
You need to make sure you are logged out of admin, and to clear your temp files or else your blog will not count hits from you because it will think you are the admin.
Hopefully your WP Stats plugin should be working now, and you will see your test page views showing up in the stats. If you see those page views WordPress Stats should now be working correctly.
Thanks for checking out Pseudorant. We appreciate the support!
“Database Locked” After Adept Manager Crashed
The Problem
If you have ever used the Adept package manager for Kubuntu (or other Debian based systems running KDE) you already know how valuable a tool it can be. It provides a very convenient way to install new software and keep your system updated. However, when such a convenient tool suddenly stops working, it can be very disorienting.
This is exactly what happened to me last weekend when I was trying to setup Eclipse on my PC. For those of you who haven’t heard of Eclipse, it is an Integrated Development Environment (IDE) that can be extended with plugins to support new languages, debugging tools, analytic tools, and more. I was planning on using it to manage some of the PHP projects I have been working on lately. I selected Eclipse from the Adept window and installed it, but it only came with the most common languages such as C, C++, and of course Java.
After searching online, I found out that there is an Eclipse project called PDT (PHP Development Tools) that provides exactly the functionality I am looking for, so I started to follow the instructions on the Eclipse PDT page (http://www.eclipse.org/pdt/) to install it on my PC. Since Eclipse is Java based, it needs to run on a Java Virtual Machine.
Unfortunately, the JVM that comes bundled with Kubuntu is GCJ (GNU Compiler for Java) and the Eclipse PDT instructions said that either a Sun or IBM Virtual Machine would be necessary. Luckily that is already a package in Adept, so naturally I selected it to install and clicked next to continue. This was a big mistake apparently, since I overlooked the little checkbox for “I agree”, which you need to scroll to the end of the End User License Agreement (EULA) to even see.
This caused Adept to crash, and it crashed hard. When I tried to open it again it said “Database Locked - Adept Manager” and then a short message that another process had locked the package database - even after restarting my PC. I could still open Adept, but only as read-only which makes it pretty useless.
I could go on and on about how it should have just aborted if I didn’t check the “I agree” box, instead of breaking Adept altogether - it’s not like anyone reads the EULAs anyways, but that’s a rant for another day.
After a little bit of Googling, I found a few posts on the official Ubuntu forums of others who were having similar problems, and one of them (http://ubuntuforums.org/showthread.php?t=348952) had a simple solution using only two commands…
The Solution
To fix the “Database Locked” message, you will need to open a terminal window. To do this, go to the K menu, then to the System submenu, and select Konsole - Terminal Program. Then just type the following two commands one at a time:
sudo apt-get -f install
sudo dpkg –configure -a
That’s it! The first command tries to automatically fix any broken dependancies, which for me just gave an error message. I’m not entirely sure if it is necessary but I would run it anyway. The second command tries to “reconfigure all unpacked but unconfigured Debian packages” (according to the man pages). This ran for a moment listing a bunch of packages, and when it finished I was able to run Adept once again!
I’m not sure whether the culprit for this problem was Adept or the Sun JDK package. I had read about other specific packages causing this problem with Adept, but that doesn’t tell me anything. All of the pages I came across recommended these steps or something very similar. Since this was the simplest approach and it worked like a charm, I would recommend you start with this. As always, you can search the Ubuntu forums or use Google if this doesn’t work.
New WordPress Theme & Logos – Revolution Hacked
New Logos Compliments of Aaron Gilmore
As many of you have probably noticed, Pseudorant has under gone a major change. That’s right! We have a new theme. The theme we are using is a modified version of the “Revolution” theme by Brian Gardner.
After collaboration between me and Joe we decided this theme would best suit the needs of the site in the coming months. We have been planning a lot of major upgrades and additions to the site so we are trying to get a good infrastructure in place ahead of time.
Areas to note in the new theme are the RSS Subscription Icon and FeedBurner Widget which Joe incorporated into the sidebar menu. The addition of 125px sponsor slots and EntreCard widgets. A Top Posts Widget which is currently under going some repairs, and much more!
For those who have been to the site in the past 20 hours you have probably noticed things breaking and being fixed. We apologize for the inconvenience. The bug search is ongoing and just when we have one thing fixed we come across something else that needs to be reworked. If you come across anything on the site that seems broken please let us know. (Email – Paul | Joe)
NEW LOGOS!
The biggest point of interest on the site is our new custom-made Logos! Pseudorant’s new Logos were designed by Aaron Gilmore.

He has an extensive background in Adobe Illustrator, Photoshop, traditional illustration techniques and classic art styles.
He accepts commissions for all of his work, and quotes very affordable prices so anyone can afford to have their site look better than the competition!
If you are looking for an amazing artist that you can afford to work with, I would highly recommend contacting Aaron for any of your project needs.
For more information check out Aaron’s website at:
As always thanks for checking out Pseudorant! We appreciate the support. Please bear with us through the new transition and you will be happy with the future updates we will be bringing you!
How to Install Apache, MySQL, and PHP on your Linux Box
Putting the AMP in your LAMP server
Hello and welcome! This is my first article / guide, so let’s get right into it.
This is intended as a guide for web developers who are new to Linux (namely Kubuntu) and wish to setup a local LAMP server on their machine. For those of you who don’t know, LAMP stands for Linux, Apache, MySQL, and Perl / Python / PHP, although in this case the ‘P’ is for PHP only. When all four of these are installed on a machine, it is a full-blown web-server capable of running complex web applications.
In my case, I have installed Kubuntu 8.04 (Hardy Heron) on my machine using the standard desktop installation, which does not come with Apache, MySQL, or PHP. To be specific, we will be using the following applications:
* Apache2
* MySQL 5
* PHP 5
All of these applications are available through the Adept Package Manager,which is a fast and convenient way to install and uninstall applications in Debian-based Linux systems. Click on the link above for a guide on how this works.
For simplicity, I will assume you know how to operate Adept and have installed at least one package before. Click on the K-Menu, go to ‘System‘, and select ‘Adept Manager - Manage Packages‘ from the list. When prompted, enter your root password and you will see Adept’s package manager interface.
Now, in the search bar, type ‘apache‘. After a short moment, you should see a list of packages. The very first one should be ‘apache2‘. Click on the arrow next to it and select ‘Request Install‘. Now, type into the search bar ‘mysql‘ and this time you will need to scroll down a ways to find the package you are looking for: ‘mysql-server‘. Click on the arrow and select ‘Request Install‘ again. I would also recommend selecting the package ‘mysql-admin‘ for a convenient GUI for managing MySQL server, but that is purely optional. Finally, type ‘php‘ into the search bar and scroll a ways down to find ‘php5‘. Once again, click the arrow and choose ‘Request Install‘.
After selecting these 3-4 packages (depending on whether or not you installed the MySQL Admin GUI), select ‘Apply Changes‘ at the top of Adept to install the packages. This may take a while, so now is an excellent time to take a break and get a drink.
After the installation is complete there is a couple of very important steps to take in order to save yourself a lot of frustration. The first and foremost, is to clear your browser cache! I’m not entirely sure why this is so important, but trust me, it is. If you are running Mozilla Firefox, go to the ‘Tools‘ menu, select ‘Clear Private Data‘, and uncheck everything except for the ‘cache‘ checkbox. You can clear out other information as well, but make sure cache is selected.
The other important step to take is to make sure that php files are parsing correctly. Go to your System Menu (the one next to the K Menu) and select anything, for example, ‘Home‘. The root folder is not in this menu, so you will have to navigate to the right folder anyways. For simplicity, select the ‘Home‘ folder from this menu.
On the left-hand side you should have a column labeled Bookmarks, with an option for Root. Select that, then click on the folder for ‘etc‘. Right-click on the folder named ‘apache2‘ and select from the ‘Action’ menu ‘Open as root‘. Enter your password to continue.
In this folder, select the folder ‘mods-available‘ and look for the file named ‘php5.conf‘. Right-click on this file and select ‘Edit as root‘ and make sure the second line says something like
‘ AddType application/x-httpd-php .htm .html .php .phtml .php3‘
In my case, all I had to do here was add ‘.htm .html ‘ before the ‘.php’ section. This is so that if you have PHP code inside an htm or html file, it will be parsed instead of showing the raw code.
Save your changes, and depending on which editor you used, you might want to delete the temporary ‘~php5.conf‘ file that it creates as a backup. It should not hurt anything to leave it there, but I like to delete the extra backup files to prevent clutter.
In any case, make sure to restart your computer at this point to make sure that the apache web server picks up the configuration changes. You can probably accomplish the same effect by just restarting the apache service, however I haven’t done that yet and restarting the system seemed like a simpler approach.
Alright, now we’re getting to the fun part! Open your favorite web browser and type in the address bar ‘http://localhost‘ to see if apache is running properly. If it is not, you can blame me and probably find some help on the official Ubuntu/Kubuntu forums, however if it is running, it should show the words ‘It Works!‘ in your web browser. We’re almost done now…
All web files will be hosted from ‘/var/www‘. To make sure php is working properly, we will need to first navigate to that folder. Select ‘System Menu‘ -> ‘Home‘, and then select ‘Root‘ from the bookmarks section on the left. Click on the ‘var‘ folder to open it and then right click on ‘www‘ and choose ‘Action‘ -> ‘Open as root‘.
In here, right-click on ‘index.html‘ and choose ‘Action‘ -> ‘Edit as root‘. Add this line right before the closing tag for the body (body tag > added line of code | below):
![]()
![]()
Save your changes, and refresh your browser window. You may want to clear your browser cache again, just to be sure. You should see ‘It Works!‘ followed by a neatly formatted table showing all of the current settings for PHP. If it did not, right-click on the page from your browser and click ‘view source‘ or whatever the option is called for your browser to see the HTML code directly.
If the output from view source shows the “?PHP” part of the code, then something is wrong. PHP code should never be sent to the browser without being parsed. If you haven’t already, try restarting your PC again, otherwise you are on your own (along with the thousands of others with similar problems). Again, I recommend checking the official forums for Ubuntu / Kubuntu.
Hopefully, all went well and you saw the neatly formatted PHP text. To make sure that MySQL is working correctly, I will assume you have the GUI installed. I said it was optional, and it is, but it’s the easiest way I know of for verifying that everything installed correctly. Go to the K-Menu, select the ‘Development‘ menu and choose ‘MySQL Administrator‘.
For the server hostname, choose ‘localhost‘. The login name will be ‘root‘, and the password is the root password for your machine. If you can connect OK, then all is well. If not, fall back on the official forums or google to find a solution, but I suspect that this will work right off the bat.
That’s all I have for this guide for now. There is a mountain of information for all three applications mentioned here, and this guide barely scrapes the surface of any of them. Expect some guides in the future for configuring Apache, MySQL, or PHP.




