我有一个托管在 Amazon S3 上的 Web 应用程序,该 Web 应用程序使用 jQuery Mobile 构建,我使用 changePage 在页面之间导航,更改页面时我没有使用井号运算符 (#)。
当用户复制网址并将其粘贴到新选项卡中时,我遇到了问题
例如:
http://www.exampleurl.com/page1.html
仅使用 jquery 页面结构加载 amazon s3 中的页面 page1.html...
我想要的行为是加载 index.html 并使用 js 读取 url、检测页面并加载正确的页面。
使用 Apache 我通过 URL 重写解决了这个问题...但对于 Amazon S3 我没有发现任何类似的...
注意:我知道如果我在 URL 中激活井号运算符 (#),问题就解决了,但我需要干净的没有 # 的 URL。
答案1
最后我在另一个问题中找到了解决我的问题的方法:
https://stackoverflow.com/questions/16267339/s3-static-website-hosting-route-all-paths-to-index-html
目标是在重定向规则中使用此配置:
<RoutingRules>
<RoutingRule>
<Condition>
<HttpErrorCodeReturnedEquals>404</HttpErrorCodeReturnedEquals >
</Condition>
<Redirect>
<HostName>yourdomainname.com</HostName>
<ReplaceKeyPrefixWith>#!/</ReplaceKeyPrefixWith>
</Redirect>
</RoutingRule>
</RoutingRules>