重写新域的Wordpress帖子URL

时间:2014-07-06 05:03:41

标签: php wordpress apache .htaccess mod-rewrite

我在EC2上运行了一个Wordpress网站。它托管在一个目录中,如下所示:

www.olddomain.ca/blog

我们正在迁移到新网址,因此我在新网站中复制了该网站:

www.newdomain.com

我想将访问旧域上帖子的用户重定向到新域上的等效帖子。我相信mod-rewrite是执行此操作的正确工具。但是,我的用户在新网站上使用了Wordpress配置,这使得网址不同。

一个例子:

http://www.olddomain.ca/blog/?p=296变为http://www.newdomain.com/index.php/p296

我无法完成这项工作 - 我从未使用过mod-rewrite,这似乎是一个复杂的场景。有什么帮助吗?

1 个答案:

答案 0 :(得分:1)

将此代码放在旧域的DOCUMENT_ROOT/.htaccess文件中:

RewriteEngine On

# URIs without any p=... query string
RewriteCond %{HTTP_HOST} olddomain\.ca$ [NC]
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^blog/(.*)$ http://www.newdomain.com/$1 [NC,NE,R=301,L]

# URIs with p=... query string
RewriteCond %{HTTP_HOST} olddomain\.ca$ [NC]
RewriteCond %{QUERY_STRING} (?:^|&)p=([^&]+) [NC]
RewriteRule ^blog/?$ http://www.newdomain.com/index.php/p%1? [NC,NE,R=301,L]