Old blog/ and blog/feed/ URLs not working after moving blog to top-level via .htaccess


For a long time I served my blog from http://www.murrayc.com/blog/, with the wordpress installation in /home/murrayc/murrayc.com/blog/. Now I’ve moved it to http://www.murrayc.com/, without moving the wordpress installation on the filesystem.

I did that by:

  • Changing the “Site Address (URL)”, in Settings->General, to http://www.murrayc.com. I kept the “WordPress Address (URL)” as http://www.murrayc.com/blog

  • Adding a RedirectRule in my top-level .htaccess at /home/murrayc/murrayc.com/, so that, for instance, permalink/something could be used instead of blog/permalink/something. The older blog/permalinks still seem to work too.

However, some old links are not working.
http://www.murrayc.com/blog/ takes you to a page that happens to mention blogs, presumably via WordPress’s attempt to guess what you want. Likewise, http://www.murrayc.com/blog/feed takes you to the comments feed for one old blog post.

With the rules added by WordPress (after changing the “Site Address URL”, I think), this is my .htaccess file:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !^/temp
RewriteRule ^(.*)$ blog/$1 [L]

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress

I’m using WordPress 3.5.1, the latest release, via Dreamhost’s 1-click install, which updates automatically.

This feels like a bug in WordPress. Maybe it’s misinterpreting URLs that it gets at some point that contain blog/blog.

, , murrayc 2 years 2019-12-30T08:38:53-05:00 0 Answers 130 views 0

Leave an answer