试图从另一个位置获取图像但 htaccess 中的 RedirectMatch 被忽略

问题描述

我刚刚设置了一个新的子域“预览”,即 preview.example.com,我正在设置一个实时网站(来自 www. 子域)的代码库的副本,以便我可以拥有一个重复的环境用于测试和显示我的客户最近的更改。

我想让自己不必将所有图像复制到预览中,因此在 wordpress 网站中保存图像的正常位置 /wp-content/uploads/ 是空的。我想使用一个简单的 htaccess 规则,而不是从相同路径上的图像将存在的实时子域中获取这些。换句话说,请求

https://preview.example.com/wp-content/uploads/2021/01/test.jpg

将被重定向到图像存在的以下位置..

https://www.example.com/wp-content/uploads/2021/01/test.jpg

我尝试使用最简单的 htaccess 重定向规则来设置它,但它似乎被忽略了,我不知道为什么。知道如何解决这个问题吗?

RedirectMatch 301 /wp-content/uploads/(.*) http://www.example.com/wp-content/uploads/$1

解决方法

将我的评论转换为答案,以便将来的访问者轻松找到解决方案。

场景是子域和主域在同一主机上,但它们的 DocumentRoot 设置为不同的路径。 OP 希望从子域提供大量图像,但不进行批量复制。

不修改 .htaccess 的建议方法是创建 wp-content/uploads/ 的符号链接。建议在 .htaccess 中使用的唯一选项是:

Options +FollowSymLinks

允许使用符号链接来处理网络请求。