我正在尝试在wordpress中使用htaccess将上载文件夹重定向到我的s3存储桶,但是它不起作用。我站点上的所有图像仍从服务器本地提供,而不是链接到存储桶。
这是我的htaccess文件:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
RewriteEngine On
RewriteRule ^wp-content/uploads/(.*)$ https://BUCKET.s3.amazonaws.com/wp-content/uploads/$1 [L]
# BEGIN W3TC CDN
<FilesMatch "\.(ttf|ttc|otf|eot|woff|font.css)$">
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "*"
</IfModule>
</FilesMatch>
# END W3TC CDN
有几个问题。您需要将规则放在wordpress规则之上,因为wordpress规则会将每个请求路由到index.php。接下来,您将需要使用mod_proxy
with,[P] flag
因为无论是否未在重写器中指定重定向,Apache还是会这样做,因为替换URL是一个新域。因此,Apache将执行重定向。因此,使用[P] flag
应该代理内容而不是进行重定向。这应该可以满足您的需求。
RewriteEngine On
RewriteRule ^wp-content/uploads/(.*)$ https://BUCKET.s3.amazonaws.com/wp-content/uploads/$1 [P]
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句