【问题标题】:htaccess rewrite rule for all images in a folder to another domainhtaccess 将文件夹中的所有图像重写到另一个域
【发布时间】:2017-02-02 05:09:54
【问题描述】:

我有一个实时站点 (livesite.com) 和一个开发站点 (devsite.com)。图片目录太大了,我无法将它从 livesite.com 复制到 devsite.com。因此,我想为 devsite.com 添加一个重写规则以从 livesite.com 获取图像(两个站点上的目录结构相同 - 只是域不同)

这是一个 wordpress 网站,因此每个月的图像都位于此结构中;

/wp-content/uploads/2015/01/image.jpg
/wp-content/uploads/2015/02/image.jpg
etc..

我需要为 2015 目录中的所有内容添加重写规则。

到目前为止,这是我在 devsite.com 根目录下的 htaccess 文件中的内容;它的目标是 2015 文件夹中的一个特定子目录,我什至无法让它工作 - 图像仍在尝试从 devsite.com 域而不是 livesite.com 中检索

Options +FollowSymLinks
RewriteEngine On
RewriteRule /wp-content/uploads/2015/01/(.*)$ http://livesite.com/wp-content/uploads/2015/01/$1 [R=302,NC,L]

我怀疑我在这里犯了一个大错特错 - 感谢任何帮助!

【问题讨论】:

    标签: wordpress .htaccess


    【解决方案1】:

    问题在于模式,它以斜线开头,请参阅RewriteRule

    按目录重写
    - 删除的前缀始终以斜杠结尾,这意味着匹配发生在从不具有前导斜杠的字符串上。因此,带有 ^/ 的模式在每个目录的上下文中永远不会匹配。

    所以,在你的情况下应该是

    RewriteRule ^wp-content/uploads/2015/01/(.*)$ http://livesite.com/wp-content/uploads/2015/01/$1 [R=302,NC,L]
    

    虽然,由于您想覆盖整个2015 子目录,您可以将其简化为

    RewriteRule ^wp-content/uploads/2015/(.*)$ http://livesite.com/wp-content/uploads/2015/$1 [R,NC,L]
    

    甚至

    RewriteRule ^wp-content/uploads/2015/(.*)$ http://livesite.com%{REQUEST_URI} [R,NC,L]
    

    【讨论】:

    • 感谢您的回答。虽然这看起来是正确的,但同样的事情发生了——我的网站试图从 devsite.com 而不是 livesite.com 获取图像,所以我的 htaccess 或类似的东西可能有其他问题。我将仅使用这些规则来尝试它,而不是其他任何东西
    猜你喜欢
    • 1970-01-01
    • 2014-02-09
    • 1970-01-01
    • 1970-01-01
    • 2011-08-05
    • 1970-01-01
    • 1970-01-01
    • 2017-03-07
    • 2019-12-16
    相关资源
    最近更新 更多