4

私は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を設定することができます:)

+0

ちょっと、インデックス文書はどのようにあなたの問題を解決しますか?もし私がいくつかのURLにアクセスし、そのファイルがそこになければ、私はindex.htmlを使って提供することになっています。 404のときにリダイレクトするリルート条件を作成できますが、リダイレクトルールではIndexDocumentについて言及できません。 – w2lame

答えて

1
残念ながら、私の知る限りでは

(およびIをs3のウェブサイトをかなり使います)あなたはお金にぴったりです。 404ハックは、あなたが言ったように、本当に悪い考えです、そしてあなたは基本的にこれらのオプションがあります。Content-Type回避策

  • Hashbangs
    • はいくつかの種類の定期的なバックエンドを使用していない
    • S3に私にとっては悪いニュース:)

      の担い手であることが

    申し訳ありませんが、あなたが本当にS3のウェブサイトにドメインのルートを指示することができないという事実は、Mの一部について契約ブレーカでしたyのもの。 mod_rewrite型のシナリオは、うまくいきません。

    +1

    私の疑惑を確認していただきありがとうございます。 – sgarcez

    1

    ハッシュにリダイレクトしてみましたか?私はこのS3の機能がこの質問をしたときに利用可能かどうかはわかりませんが、フォルダのプロパティの静的なWebホスティングセクションでこれらのリダイレクト規則を使って問題を解決できました。

    残りはBackbone.jsアプリケーションで処理されます。

    +1

    最後の段落で私はそれに頼りにしたくないと言いました。幸いにも、S3は現在、問題を解決するIndex Documentsをサポートしています:) – sgarcez

    関連する問題