Detailed .HTACCESS Setup Information for WordPress Blogs

June 9, 2008 · Filed Under Blogs · 3 Comments 

Setting up an .HTACCESS file for your Word Press blog

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:

http://www.winsyntax.com/

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! 

  • Sponsors

  • Upcoming MMORPGs!


  • Created with flickr slideshow.
  • RSS MMORPG.COM News

  • RSS MMOHub Latest News

  • Recent Posts

  • Recent Comments