在新的 Wordpress 安装下重定向旧的子目录页面请求
Posted
技术标签:
【中文标题】在新的 Wordpress 安装下重定向旧的子目录页面请求【英文标题】:Redirect old subdirectory page requests under a new Wordpress installation 【发布时间】:2021-10-14 08:17:29 【问题描述】:我们的网站最近从一个基本的 php/mysql 应用程序迁移到了 Wordpress。在旧应用程序中,我们在一个子目录中有内容,该子目录现在位于一个新域中。
以下示例。
旧链接:
https://example.com/vibes/vibin.php?showsomething=abcd&whatever=whatever
应该重定向到:
https://vibes.com/vibin.php?showsomething=abcd&whatever=whatever
复杂的角度是旧链接现在是 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 管理区域四处寻找,但不知道如何安全地编辑该文件。
是否有其他方法可以解决这个问题,或者我们的用户是否只需要以旧方式更新书签?
【问题讨论】:
【参考方案1】: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/$1 [L,R,NE,QSA]
如果您只想将请求重定向到旧网站上的某个 URL,那么我会在这里查看 https://***.com/a/8416095/222564。也许它看起来像这样。
RewriteBase /
RewriteRule ^vibes/(.*)$ http://www.vibes.com/$1 [L,R=301,QSA]
插件
由于旧网站运行的是 WordPress,因此您可以使用插件来重定向请求,而不是编辑 .htacess。有各种可用的“重定向”插件。例如,“404 解决方案”有一个选项可以根据正则表达式将请求重定向到另一个域并保留查询字符串。我维护那个插件,所以我知道它可以做到这一点,但我不知道其他插件。
例如,您将从/vibes/(.*)
重定向到http://www.vibes.com/$1
【讨论】:
我实际上最终将RedirectMatch 301 ^/vibes/(.*)$ https://vibes.com/$1
添加到我的 ssl.conf 虚拟主机配置中。感谢您的回答。以上是关于在新的 Wordpress 安装下重定向旧的子目录页面请求的主要内容,如果未能解决你的问题,请参考以下文章