在新的 Wordpress 安装下重定向旧的子目录页面请求

Redirect old subdirectory page requests under a new Wordpress installation

我们的网站最近从基本的 php/mysql 应用程序迁移到 Wordpress。在旧应用程序中,我们的内容位于现在位于新域的子目录中。

示例如下。

旧link:

https://example.com/vibes/vibin.php?showsomething=abcd&whatever=whatever

应该重定向到:

https://vibes.com/vibin.php?showsomething=abcd&whatever=whatever

复杂的角度是旧的 links 现在是 Wordpress 安装。在 wordpress 的默认 .htaccess 文件中,我看到以下内容:

# BEGIN WordPress
# The directives (lines) between "BEGIN WordPress" and "END WordPress" are
# dynamically generated, and should only be modified via WordPress filters.
# Any changes to the directives between these markers will be overwritten.
<IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
        RewriteBase /
        RewriteRule ^index\.php$ - [L]
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule . /index.php [L]
</IfModule>

我在 WP 管理区四处寻找,但不知道如何安全地编辑该文件。

有没有其他方法解决这个问题,或者我们的用户是否只需要用旧方法更新书签?

htacess

您可以使用 ftp 手动编辑 .htaccess 文件并添加您想要的重定向。先做个备份。如果你想避免 ftp 访问,那么我根本不建议更新 .htaccess 文件,因为如果你破坏了某些东西,你将需要该访问权限。

您可以使用 WordPress 插件编辑 .htaccess 文件以避免 ftp 访问,例如“Htaccess 文件编辑器”。 (请确保您在尝试此操作之前具有 ftp 访问权限,以便在备份损坏时将其放回原处。)

如果你想重定向所有请求那么我会看这里https://serverfault.com/a/280067看看如何使用 .htacess 创建重定向,重定向到另一个域并保持查询字符串。也许它看起来像这样。

RewriteCond %{HTTP_HOST} !^vibes\.com [NC]
RewriteCond %{HTTP_HOST} !^$
RewriteRule ^/?(.*) http://www.vibes.com/ [L,R,NE,QSA]

如果您只想 将请求重定向到旧站点上的某个 URL,那么我会看这里 。也许它看起来像这样。

RewriteBase /
RewriteRule ^vibes/(.*)$ http://www.vibes.com/ [L,R=301,QSA]

插件

由于旧网站是 运行 WordPress,您可以使用插件来重定向请求,而不是编辑 .htacess。有各种“重定向”插件可用。例如“404 解决方案”有一个选项可以根据正则表达式将请求重定向到另一个域并保留查询字符串。我在维护那个插件,所以我知道它是这样做的,但我不知道其他插件。

例如,您将从 /vibes/(.*) 重定向到 http://www.vibes.com/