Take the 2-minute tour ×
WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. It's 100% free, no registration required.

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]
</IfModule>
# 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.

share|improve this question
add comment

2 Answers 2

You can skip the first Part of your .htaccess, just use the standard WordPress configuration.

The main problem is, you need to create a new index.php in the root directory of your webspace, containing the following:

<?php
/**
 * Front to the WordPress application. This file doesn't do anything, but loads
 * wp-blog-header.php which does and tells WordPress to load the theme.
 *
 * @package WordPress
 */

/**
 * Tells WordPress to load the WordPress theme and output it.
 *
 * @var bool
 */
define('WP_USE_THEMES', true);

/** Loads the WordPress Environment and Template */
require('./blog/wp-blog-header.php');
?>

You also need to create a .htaccess file in your root directory, containing the standard WordPress .htaccess, and then everything should work fine.

share|improve this answer
    
Thanks. I've tried that, removing everything from my top-level .htaccess other than the part added by Wordpress, but the problems with blog/ and blog/feed/ remain. –  murrayc Jan 31 '13 at 9:52
    
Did you alter your index.php in the TopLevel? the important part is the last line, where you define from which directory wp-blog-header.php is included. –  fischi Jan 31 '13 at 10:00
    
No, I used an index.php file with exactly the content that you suggested. My wordpress is at blog/, so it seems OK. It's working otherwise, though I don't notice any difference to how it was with just the .htaccess. –  murrayc Jan 31 '13 at 10:02
    
However, I do notice that my murrayc.com/feed is now as broken as murrayc.com/blog/feed , so I'll have to change things back if I don't figure this out. I need at least one working feed URL. –  murrayc Jan 31 '13 at 10:05
    
Hm, the Link http://www.murrayc.com/feed/ seems to work for your setup. As your Images are delivered from the blog subdirectory, I suppose you got the solution? –  fischi Jan 31 '13 at 12:02
show 1 more comment

You might want to use 301 redirects, as now there is no blog directory, but it is assumed to be as root. You have to inform server that these are old urls and should be matched to new one's. You can do this using .htaccess as code below,

//301 Redirect Old File
Redirect 301 http://www.murrayc.com/blog http://www.murrayc.com/
Redirect 301 http://www.murrayc.com/blog/feed http://www.murrayc.com/feed

also there are plugins for these.

share|improve this answer
    
Thanks, but that doesn't seem to fix the problem. I've tried placing that (and with lines for the URLs ending in /) at the start of the .htaccess file. I've tried it with wget, so I doubt that any cache is involved. –  murrayc Feb 5 '13 at 10:23
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.