我有一个实时网站(livesite.com)和一个开发网站(devsite.com)。 images目录非常庞大,我无法将它从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]
我怀疑我在这里犯了一个笨拙的错误 - 任何帮助都赞赏!
答案 0 :(得分: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]