我在AWS S3静态网站的前面有一个Apache HTTP Server作为代理。因此,http://example.com/testsite进入了S3站点,但应始终被视为从http://example.com/testsite访问。
最初的index.html
访问结果为200,但是,所有运行的JavaScript文件都返回404。它们位于S3根目录中,与index.html
相同,但是最终被访问为http://example.com/而不是http://example.com/testsite,因此为什么我得到404。
我希望有人可以帮助我处理我的Apache配置代码段(请参见下文),以便获得正确的配置。
RedirectMatch permanent ^/$ /doorman/
Redirect /js/ /frontman/js/
...
...
<Location /testsite >
ProxyPreserveHost On
AuthType openid-connect
Require valid-user
ProxyPass <%= @s3_website %>/
ProxyPassReverse <%= @s3_website %>/
</Location>
答案 0 :(得分:0)
我通过以下配置解决了此问题:
``` ProxyPreserveHost关闭 AuthType openid-connect 需要有效用户 ProxyPass <%= @ s3_website%> ProxyPassReverse <%= @ s3_website%>
ProxyPreserveHost关闭 AuthType openid-connect 需要有效用户 ProxyPass <%= @ s3_website%> / assets / $ 1 ProxyPassReverse <%= @ s3_website%> / assets / $ 1
ProxyPreserveHost关闭 AuthType openid-connect 需要有效用户 ProxyPass <%= @ s3_website%> ProxyPassReverse <%= @ s3_website%> ```
关键部分是:
“ ProxyPreserveHost关闭”-我的S3存储桶名称与代理不同,因此必须为“关闭”。
“ LocationMatch”-必需,以便代理可以匹配并将URL请求映射到S3存储桶位置/对象。