I’m going to try to keep this brief as I am not a big WordPress hacker. For the most part WP just works and allows me to get on with what I really want to do which is write and interact. When I first started StaticNAT.com I had all sorts of crazy ideas and to this day I still do. But back then I had not clue how to really setup a blog, I just dove in and hoped for the best. Well it turns out what how I did it is really not all that bad but I had just not configured everything in a way that was optimal. So here is what I did.
On the Initial WordPress install I told the installer to use /staticant.com/WP/ as the directory for all my wordpress install files. That is all well and good but I ended up having to go to www.staticnat.com/wp to get to my blog, and that was not so good. The quick and dirty fix was to use an index.html file that looked just like this:
< !DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">StaticNAT
The problem was that it just ended up pointing back to http://test.staticnat.com and quite honestly thats ugly. As I have been cleaning up the site in preparation for all the cool new things we are adding I decided I needed to make a change even if it was painful. My plan was to backup my WP data and DB then create a new install of WP at /statincat.com/ the root directory for this site. After that was all done I would import all the old data re-install all my plugins re-create the Admin users and move on. But I was a bit concerned about how clean this would be especially from and SEO perspective.
Digging a bit I found out that the way I deployed five years ago was really not wrong and that WP had provisions already to live in a unique director but still present itself without the index.html file. So off I went to find out how to do it. What I found was this support forum post on DreamHosts site. This was convenient since Dreamhost is my web host so I was sure it would work out well.
To sum it all up for you what you have to do is go to Settings –> General –> and change the Site Address (URL) to http://www.staticnat.com. Once you have done that you have to create a .htaccess file and place it in both the /staticnat.com/WP and /staticnat.com/ folders. I did not like all of the things that were in the .htaaccess file that was shown in this forum article so I modified it to look like this;
# protect the htaccess file order allow,deny deny from all # disable the server signature ServerSignature Off # limit file uploads to 10mb LimitRequestBody 10240000 # protect wpconfig.php order allow,deny deny from all #who has access who doesnt order allow,deny #deny from 000.000.000.000 allow from all #custom error docs ErrorDocument 404 /notfound.php ErrorDocument 403 /forbidden.php ErrorDocument 500 /error.php # disable directory browsing Options All -Indexes # set the canonical url RewriteEngine On RewriteCond %{HTTP_HOST} ^staticnat.com$ [NC] RewriteRule ^(.*)$ http://www.staticnat.com/$1 [R=301,L] # BEGIN WordPress # END WordPress
Then you have to copy the index.php files from /staticnat.com/WP to /staticnat.com/. That should be all there is to it. But for me it was not. I ended up having to go into the index.php files and change the following:
/** Loads the WordPress Environment and Template */ require('./wp-blog-header.php');
TO
/** Loads the WordPress Environment and Template */ require('./WP/wp-blog-header.php');
That did it. I have a few custom links that are not working following the change but thats minor and should be resolved pretty quick. Keep in mind if you end up using this any of the references to www.staticnat.com should be replace with your domain name for it to work for you.