mod_rewrite将Wordpress图像移动到Amazon S3

Bri*_*ian 3 wordpress mod-rewrite url-rewriting amazon-s3

基本上,我将我的所有图像移到s3,但在我的网站上会有大量旧图像位置的旧引用.希望将wp-content/uploads /文件夹中的任何内容重写为s3地址.

简短的故事是我对正则表达式并不是很好,并且已经有一段时间了.任何建议或帮助将不胜感激.

编辑:

这是我到目前为止所得到的:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php


RewriteRule ^wp-content/uploads/(.*)$ http://example.s3.amazonaws.com/wp-content/uploads/$1 [L]
</IfModule>
Run Code Online (Sandbox Code Playgroud)

Dan*_*llo 11

您也可以使用mod_proxy 设置反向代理,而不是使用mod_rewrite .这应该更容易配置 - 不需要正则表达式.

设置反向代理的基本mod_proxy指令是ProxyPass.您通常会将以下行添加到本地Apache配置文件中(通常httpd.confapache2.conf):

ProxyPass  /wp-content/uploads/   http://example.s3.amazonaws.com/wp-content/uploads/
Run Code Online (Sandbox Code Playgroud)

在这种情况下,浏览器会请求,http://your-domain.com/wp-content/uploads/abc.png但您的Web服务器将通过充当代理来为此服务http://example.s3.amazonaws.com/wp-content/uploads/abc.png.

您还需要确保在Apache配置文件中取消注释以下配置行:

LoadModule proxy_module /usr/lib/apache2/modules/mod_proxy.so
LoadModule proxy_http_module /usr/lib/apache2/modules/mod_proxy_http.so
Run Code Online (Sandbox Code Playgroud)

在对配置文件进行任何更改后,请确保重新启动本地Apache服务.

此外,请确保为虚拟主机(Amazon文档)设置Amazon S3存储桶.