MULTSITE:通过.htAccess使用生产映像进行本地开发

时间:2018-03-27 作者:benedict_w

我从事多站点WordPress安装(请参见-https://codex.wordpress.org/Create_A_Network), 我不想下载所有远程生产映像来测试本地环境中的站点。

以下内容。htaccess to rewrite示例允许直接从实时WordPress站点提取图像:

RewriteCond %{REQUEST_URI} ^/wp-content/uploads/[^\\/]*/.*$
RewriteRule ^(.*)$ http://example.com/$1 [QSA,L]
请参见-https://css-tricks.com/develop-locally-use-images-production/, 这描述了正常的独立WordPress安装。

Can anyone adapt this to work for a Multisite install i.e. one that encompasses multiple WordPress blogs on different domains?

我尝试了以下方法来映射特定本地子域的请求,但没有成功:

RewriteCond %{HTTP_HOST} ^local\\.example\\.com/wp-content/uploads/[^\\/]*/.*$
RewriteRule ^(.*)$ http://www.example.com/$1 [QSA,L]

1 个回复
最合适的回答,由SO网友:MrWhite 整理而成

以下内容.htaccess 要重写示例。。。

RewriteCond %{REQUEST_URI} ^/wp-content/uploads/[^\\/]*/.*$
RewriteRule ^(.*)$ http://example.com/$1 [QSA,L]
请注意。。。这将导致外部重定向(就像R=302 已包含在RewriteRule 指令),而不仅仅是;“重写”;(如建议的那样)-即使没有R 旗帜因此,浏览器将对uploads目录中的每个资源发出两个请求。在本地测试环境中开发时,这可能是可以的(正如您所做的),但在生产中您永远不会做这样的事情,因为如果您有许多外部资源,它可能会让您的站点陷入停顿。(要正确执行此操作,您需要将服务器配置为反向代理,并使用mod\\u proxy“代理”请求。)

如果在RewriteRule 替换然后Apache将隐式触发外部重定向。

使上述目标成为特定领域(例如。local.example.com), 您只需要添加一个附加条件来检查Host 标题。例如:

RewriteCond %{HTTP_HOST} ^local\\.example\\.com
RewriteCond %{REQUEST_URI} ^/wp-content/uploads/[^/]+/
RewriteRule (.*) http://example.com/$1 [R,QSA,L]
关于上述内容的一些注意事项:

  • (.*) 与相同^(.*)$ - 不需要锚.*$ (它只是匹配URL末尾的任何内容)是多余的[^/] 与相同[^\\/].[^/]+ 而不是[^/]*.R, 因为你最好弄清楚到底发生了什么RewriteCond 与REQUEST_URI. 将其移动到RewriteRule 模式,自RewriteRule <首先处理em>图案。例如,上述内容可以重写为:

    RewriteCond %{HTTP_HOST} ^local\\.example\\.com
    RewriteRule ^wp-content/uploads/[^/]+/ http://example.com%{REQUEST_URI} [R,QSA,L]
    

结束

相关推荐

有没有可能在不使用wp-config.php、.htaccess或php.ini中的指令的情况下增加php内存?

我使用的插件由于内存不足而崩溃。但我所在的主机(万神殿)使用git在开发服务器(我有FTP访问权限)和实时服务器(我没有FTP或SSH访问权限)之间进行文件更新。我无法更改wp配置。php和提交文件,因为Dev和Live之间的数据库详细信息不同。php。不允许使用ini文件和中的PHP指令。不允许htaccess。如何为Live增加PHP内存?我可以在主题文件中添加指令吗?类似功能。php?这对插件内存有效吗?