Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 重写新域的Wordpress帖子URL_Php_Wordpress_Apache_.htaccess_Mod Rewrite - Fatal编程技术网

Php 重写新域的Wordpress帖子URL

Php 重写新域的Wordpress帖子URL,php,wordpress,apache,.htaccess,mod-rewrite,Php,Wordpress,Apache,.htaccess,Mod Rewrite,我有一个运行在EC2上的Wordpress站点。它位于一个目录中,如下所示: www.olddomain.ca/blog 我们正在迁移到新的URL,因此我在新网站中复制了该网站: www.newdomain.com 我想将访问旧域上帖子的用户重定向到新域上的等效帖子。我相信mod rewrite是实现这一点的正确工具。然而,我的用户在新站点上对Wordpress的配置做了一些改变,使得URL有所不同 例如: http://www.olddomain.ca/blog/?p=296变为http://

我有一个运行在EC2上的Wordpress站点。它位于一个目录中,如下所示:

www.olddomain.ca/blog

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

www.newdomain.com

我想将访问旧域上帖子的用户重定向到新域上的等效帖子。我相信mod rewrite是实现这一点的正确工具。然而,我的用户在新站点上对Wordpress的配置做了一些改变,使得URL有所不同

例如:

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


我很难做到这一点-我从来没有使用过mod rewrite,这似乎是一个复杂的场景。有什么帮助吗?

将此代码放在您的
文档\u 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]

谢谢你的帮助。这会不会影响www.olddomain.ca(不是/blog)上的根站点?不会,它只会影响
/blog
我相信这就是你想要的,对吗?