WARNING: this post is meow of the highest order. The upgrade to mac os X was nice and smooth. As always you should check for updates on any of your apps before running them though. The syncing was a bit hairy, but I would suggest overwriting the .mac data the first time you sync, do that sync first, and then sync your devices. One everything had synced once, it seemed to work ok. All the other apps seem to just work. So, onto the blog…
The Problem
So, the problem is that I moved the base address of my blog. If I had just kept the file structure the same as the URL structure I would have been totally fine. I wanted to be able to get to the blog from /blog/ and not make people type in /~josh/blog/ In order to do this certain rewrite rules were required. Specifically ones that would make everything go from /blog/ to /~josh/blog/ without the reader ever knowing.
The official (Mac OS anyway) way of doing that is to put those rules into a special file, /private/etc/httpd/users/username.conf. I put them in an equally valid though less permanent place… httpd.conf The problem there you see is that when they upgrade the system, they might upgrade the httpd.conf file. Oops. Well that file reads in the user specific files, so you don’t really need to change that one, but oh well.
The Solution
Well just go to the admin pages and get the rewrite rules again. Except for the fact that a) the admin pages require the rewrite rules to be in place already and b) even once you fix it, they don’t actually provide that info any more and suggest another way of achieving the same effect. In any case, undaunted, in order to make it work in the old location I went looking for the place to change where the “site” definition was. Of course it is actually in the database. In a couple places. So I got to do my favorite pastime. Editing the WP DB by hand! For your enjoyment:
UPDATE wp_moonglum_options SET option_value=’http://lair.haggisnet.org/~josh/blog’ WHERE option_value=’http://lair.haggisnet.org/blog’;
Now you can go directly to the admin page and reset the permalink rewrite rules.
The Continuing Problem:
Once I had that done, I stuck in some rewrite rules at the top level to forward /blog/ and /blog to the real blog. Of course all of the internal links fully qualify out so you quickly move away from that nice short URL. Actually some people have seen the behavior of the link redirecting them to localhost/~josh/blog/ which I find to be truly odd behavior. The rewrite rules that cause this were:
RewriteRule ^blog/(.*)$ /~josh/blog/$1 [R]
Changing that R to L seemed to fix that, so now blog/ blog ~josh/blog/ all work, but ~josh/blog seems to still rewrite to localhost. Any thoughts? The only thing I can think of is that there is some rewrite rule in .htaccess in josh/blog that messes it up. I might just give up and stick it in the actual location. Which FWIW might actually be the real solution to the initial problem. Stick it there, which lets you get to the admin pages, and then move it back once you have fixed everything and put in the rewrite rules you want.