将旧的 Wordpress 永久链接站点从一个域的子目录重定向到另一个域的根目录

Redirect old Wordpress permalinks site from subdirectory on one domain to root of another domain

我知道关于 htaccess 重定向的许多其他问题,但找不到任何似乎适用于我的特定情况的问题。

我在 www.oldsite.com.au/wp-subdir 安装了一个 wordpress 站点。此站点使用永久链接,因此 /wp-subdir/.htaccess 文件中包含以下内容:

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

在设置页面上,"WordPress address (URL)" 和 "Site address (URL)" 都设置为 http://www.oldsite.com.au/wp-subdir - 也就是说,该站点没有像存在于根目录中那样呈现 - 一个选项在 Giving wordpress its own directory 上解释 法典页)

我已将此站点复制到 www.newsite.com.au/wp-subdir,但此处 根据上述代码设置的。也就是说,在该域的设置页面中,"WordPress address (URL)" 设置为 http://www.newsite.com.au/wp-subdir,"Site address (URL)" 设置为 http://www.newsite.com.au

两个站点单独运行都很好。

但是,现在我希望将旧站点上的所有点击重定向到新站点上的类似位置。

我想要的例子

http://www.oldsite.com.au/wp-subdir -> http://www.newsite.com.au

http://www.oldsite.com.au/wp-subdir/products -> http://www.newsite.com.au/products

http://www.oldsite.com.au/wp-subdir/images/imagePermaLink -> http://www.newsite.com.au/images/imagePermaLink

http://www.oldsite.com.au/wp-subdir/?s=search+terms -> http://www.newsite.com.au/?s=search+terms(显示搜索结果页面)

http://www.oldsite.com.au/wp-subdir/unknown-page -> http://www.newsite.com.au/unknown-page(显示 404 页面)

Link 来自 google 图片结果 -> http://www.newsite.com.au/images/imagePermaLink

我试过的

  1. 将 .htaccess 文件添加到 www.oldsite.com.au 的根目录,使用 Redirect 301 /wp-subdir http://www.newsite.com.au/

  2. 在根 .htaccess 文件中改用它:

    Options +FollowSymlinks -MultiViews RewriteBase / RewriteEngine On RewriteCond %{HTTP_HOST} ^(www\.)+oldsite\.com\.au [NC] RewriteRule ^wp-subdir/(.*) http://www.newsite.com.au/ [R=301,NC,L]

  3. 更改 oldsite.com.au/wp-subdir/.htaccess 上的重写规则(之前完整列出)来自: RewriteRule . /wp-subdir/index.php [R=301,L]

至: RewriteRule . www.newsite.com.au/index.php [R=301,L]

所有更改(单独)都会导致以下情况:

http://www.oldsite.com.au/wp-subdir -> http://www.newsite.com.au 通过

http://www.oldsite.com.au/wp-subdir/products -> http://www.newsite.com.au 失败

http://www.oldsite.com.au/wp-subdir/images/imagePermaLink -> 找不到页面错误(不是站点的 404 模板)FAIL

http://www.oldsite.com.au/wp-subdir/?s=search+terms -> http://www.oldsite.com.au/wp-subdir/?s=search+terms 失败

http://www.oldsite.com.au/wp-subdir/unknown-page -> http://www.newsite.com.au 失败

Link 来自 google 图像结果 -> http://www.newsite.com.auimages/imagePermaLink(域名后缺少斜线)FAIL

如果不是很明显,我对 .htaccess 文件知之甚少....因此非常感谢您的帮助!

编辑:

今天早上使用我的 iPad 再次查看此内容,结果证明我上面的选项 1 毕竟有效。现在再次在我的笔记本电脑上它(几乎*)工作正常。也许我笔记本电脑上的某些浏览器缓存导致之前的重定向尝试被记住。

*在 Chrome 中,一些页面在重定向后显示正常,但选项卡上的页面加载纺车图标从未完成(并且使用开发人员工具,网络和时间线选项卡没有数据)。

*在 Chrome 中,来自 google 图片搜索的重定向在主机后仍然缺少斜杠。

尝试:

Redirect 301 /wp-subdir/ http://www.newsite.com.au/

注意在第一个字符串末尾添加 /。