将特定图像重定向到另一个特定图像 htaccess - WordPress

Redirect specific image to another specific image htaccess - 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 /
Options +FollowSymLinks
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
RewriteRule ^wp-content/uploads/2021/03/ImageA.jpg$ ^wp-content/uploads/2021/03/imageB.jpg [L,R=301]
</IfModule>

# END WordPress

然而,这似乎仍然行不通。有什么我想念的吗?

如果原始 URL/image 作为物理文件存在,则重定向插件将无法工作,因为 WordPress 引擎从未启动。

RewriteRule ^wp-content/uploads/2021/03/TrackClosed.jpg$ ^wp-content/uploads/2021/03/LightningTalks.jpg [L,R=301]

这有一些潜在的错误:

  1. 通过将其放置在 WordPress 前端控制器之后,只有当原始 URL 仍然作为物理文件存在时才会被处理。如果源 URL 不作为物理文件存在,那么该指令需要在 之前 WP 前端控制器(即 之前 # BEGIN WordPress 部分)。

  2. ^ 开头的目标 URL 无效。您应该明确并以斜杠(即相对根目录)开始目标 URL 。尽管这不是绝对必要的,因为定义了 RewriteBase 指令。

  3. 这真的应该是外​​部 3xx 重定向还是内部重写?

  4. 您应该避免编辑 # BEGIN WordPress 块内的代码,因为 WP 本身会尝试主此部分,并且任何自定义都可能被覆盖。

改为尝试以下操作,在 .htacess 文件的顶部,# BEGIN WordPress 部分 之前:

RewriteRule ^wp-content/uploads/2021/03/ImageA\.jpg$ /wp-content/uploads/2021/03/ImageB.jpg [R=301,L]

这会将 /wp-content/uploads/2021/03/ImageA.jpg(区分大小写的匹配项)“重定向”到 /wp-content/uploads/2021/03/ImageB.jpg。要将其更改为 internal 重写,只需删除 R=301 标志即可。

无需重复 RewriteEngine 指令。

首先使用 302(临时)重定向进行测试。您可能需要在测试前清除浏览器缓存。