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!
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.
The Blogs First New Author!
Pseudorant Gets a Helper Monkey!
As of this weekend Pseudorant now has a new helper monkey / part time author named Joe. Joe has an extensive background in computers and technology and will be contributing articles here and there, for anything that he he feels people need to know about.
Currently he is involved in Linux / Programming / PHP / CMS / and Server projects which all lend themselves to the types of articles Joe likes to write in his free time. Because he is a part time author with Pseudorant, his articles will be posted sporadically as his schedule permits.
I am very excited to have another author helping out with the site because this will provide even better articles for anyone that is already interested in what we are doing here at Pseudorant.
As always, we plan to keep the focus on computer technology and the internet, and anything that relates to these topics. Keep checking back for future updates and anything new we are working on.
Thanks for checking out the site, we appreciate the support!




