wordpress - 在新的 Wordpress 安装下重定向旧的子目录页面请求
问题描述
我们的网站最近从一个基本的 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 管理区域四处逛逛,但看不到如何安全地编辑该文件。
是否有其他方法可以解决这个问题,或者我们的用户是否只需要以旧方式更新书签?
解决方案
进程
您可以使用 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://stackoverflow.com/a/8416095/222564。也许它看起来像这样。
RewriteBase /
RewriteRule ^vibes/(.*)$ http://www.vibes.com/$1 [L,R=301,QSA]
插件
由于旧网站运行的是 WordPress,因此您可以使用插件来重定向请求,而不是编辑 .htacess。有各种可用的“重定向”插件。例如,“404 解决方案”有一个选项可以根据正则表达式将请求重定向到另一个域并保留查询字符串。我维护该插件,所以我知道它可以做到这一点,但我不知道其他插件。
例如,您将重定向 from/vibes/(.*)
到http://www.vibes.com/$1
推荐阅读
- wpf - 使用 Prism 的 Wpf 中模块之间的 ApplicationCommands 问题
- javascript - React JS:无法读取子组件中未定义的属性“dataTransfer”
- android - Laravel 和 Android 与 MySQL 数据库
- git - 压缩的 Git 合并导致分支不同步
- styled-components - CSS 浏览器与样式组件的兼容性
- google-cloud-platform - 如何将 AMI 迁移到 GCP
- javascript - 在与 if 语句相同的行上初始化临时变量
- mysql - 这个 bash 脚本试图用 mysql 做什么?
- matlab - 如何使用 LaTeX 解释器在 MATLAB 图形中使颜色条的刻度变为粗体?
- angularjs - 不允许超过 md-maxlength="200"