通过.htaccess将博客移到顶层后,旧的博客/和博客/提要/URL不起作用

时间:2013-01-31 作者:murrayc

很长一段时间以来,我都是从http://www.murrayc.com/blog/, 在/home/murrayc/murrayc中安装wordpress。com/blog/。现在我把它移到了http://www.murrayc.com/, 无需移动文件系统上的wordpress安装。

我是这样做的:

将“设置->常规”中的“站点地址(URL)”更改为http://www.murrayc.com. 我将“WordPress地址(URL)”保留为http://www.murrayc.com/blog

在我的顶层添加重定向规则。htaccess位于/主页/murrayc/murrayc。例如,permalink/something可以用来代替blog/permalink/something。旧的博客/永久链接似乎仍然有效。

但是,一些旧链接不起作用。http://www.murrayc.com/blog/ 带你进入一个碰巧提到博客的页面,大概是通过Wordpress猜测你想要什么。同样地http://www.murrayc.com/blog/feed 带您访问一篇旧博客文章的评论源。

有了Wordpress添加的规则(我想在更改了“网站地址URL”之后),这就是我的。htaccess文件:

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
我正在使用Wordpress 3.5.1,最新版本,通过Dreamhost的一键安装,它会自动更新。

这感觉像Wordpress中的一个bug。也许它误解了它在某个时候得到的包含blog/blog的URL。

2 个回复
SO网友:fischi

您可以跳过.htaccess, 只需使用标准的WordPress配置。

主要问题是,您需要创建一个新的index.phproot 网站空间的目录,包含以下内容:

<?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\');
?>
您还需要创建.htaccess 根目录中的文件,包含标准WordPress.htaccess, 然后一切都会好起来。

SO网友:Rajeev Vyas

您可能希望使用301重定向,因为现在没有博客目录,但假定它是根目录。您必须通知服务器这些是旧URL,应该与新URL匹配。您可以使用。htaccess代码如下,

//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
还有这些插件。

结束