私はS3上で実行している1ページのjavascript(バックボーン)フロントエンドを持っており、同じインデックスファイルにリダイレクトされるようにいくつかのディープリンクが必要です。通常はApacheでmod_rewriteを使用しますが、S3でこれを行う方法はありません。S3上のバックボーンフロントエンドを持つディープリンク
デフォルトのエラードキュメントをインデックスドキュメントと同じに設定しようとしましたが、 これはサーフェス上で動作しますが、実際のレスポンスステータスヘッダーを確認すると、ページが404に戻ってきます。これは明らかに良くありません。
別の解決策、その醜いが、エラードキュメントハックよりも優れあり:
それはあなたがindex.htmlを単に名前をサブディレクトリと同じのコピー(マイナス最後のスラッシュを作成できることが判明しますたとえば、index.htmlをクローンしてaboutという名前を付け、Content-Typeがtext/html(メタデータタブ内)に設定されていることを確認すると、/ aboutのすべてのリクエストは新しい「about」を返します。 index.htmlのコピーです。
明らかに、このソリューションはあまり最適ではなく、あらかじめ定義されたディープリンクターゲットでのみ動作しますが、index.htmlをクローンするステップがフロントエンドのビルドプロセスの一部であれば、バックボーン - ボイラープレートの使用私はちょうどそのことをやるような仕事を書くことができます。任意の提案を大幅に理解されるであろう
私はhashbangsに頼るよりも、この他を行う方法を参照してくださいいけないこれらの2つのハックの回避策以外
..
UPDATE:(実際にはしばらくの間)になりました
S3はこの問題を解決Index Documentsをサポートしています。あなたがDNS管理のためにルート53を使用する場合は、もはやサブドメイン+ CNAMEを必要といけないので、
また、あなたは、あなたのS3バケットを指すalias recordを設定することができます:)
ちょっと、インデックス文書はどのようにあなたの問題を解決しますか?もし私がいくつかのURLにアクセスし、そのファイルがそこになければ、私はindex.htmlを使って提供することになっています。 404のときにリダイレクトするリルート条件を作成できますが、リダイレクトルールではIndexDocumentについて言及できません。 – w2lame