質問

できるリダイレクトヘッダは、s3-オブジェクト?のような301リダイレクト.

例えば:

mybucket.amazon-aws.com/myobject --> example.com/test

好ましくは設定によりヘッダのようにこのオブジェクト:

HTTP/1.1 301 Moved Permanently
Location: http://example.com/test
Content-Type: text/html
Content-Length: 0
役に立ちましたか?

解決

先月、この機能は、単に追加されました。

あなたはここでAPIのドキュメントを見つけることができます:

http://docs.amazonwebservices.com/ AmazonS3 /最新の/ dev /ハウツーページ-redirect.htmlを

あなたがオブジェクトを置くとき、

、あなたが使用したい301リダイレクトするように、そのオブジェクトに対するx-amz-website-redirect-locationキーを設定する必要があります。

また、コンソールを使用することができます。

ここに画像の説明を入力します

他のヒント

の場合には、ウェブサイトのホスティングは、バケツのために有効になっている場合は、301リダイレクトを追加するための別の方法があります。 それによると、リダイレクションルールは、XML形式でのバケットレベルで記述されており、AWS S3コンソール(静的ウェブサイトホスティングセクション)を介してバケットのプロパティで指定することができます。 その構文についての完全なドキュメントは、現在、<のhref =「http://docs.aws.amazon.com/AmazonS3/latest/dev/HowDoIWebsiteConfiguration.html#configure-bucket-as-website-routing-rule-syntax」見つけることができます>ここを。

あなたは限り、それは一つの場所ですべてのリダイレクトを管理する方が簡単だとして、大規模なURLの動きを持っている場合、

このアプローチは便利です。例えばそれは、リダイレクトルールを定義することが可能です。

<RoutingRule>
    <Condition>
        <KeyPrefixEquals>index.php</KeyPrefixEquals>
    </Condition>
    <Redirect>
        <ReplaceKeyWith>index.html</ReplaceKeyWith>
    </Redirect>
</RoutingRule>
<RoutingRule>
    <Condition>
        <KeyPrefixEquals>blog.php?id=21</KeyPrefixEquals>
    </Condition>
    <Redirect>
        <ReplaceKeyWith>mysql-utf-8-database-creation-snippet.html</ReplaceKeyWith>
    </Redirect>
</RoutingRule>
それは偽のオブジェクトを作成し、それらのX-AMZ-ウェブサイトリダイレクト-場所のメタデータを指定するのと同じだと同様に

に見えます。 悪いニュースは、1つのバケットのためにXMLではない50の以上のようなルール可能性があるということです。 そして、はい、それはXMLを管理するために便利ではありません。しかし、私のために、この方法は、現時点では簡単です。ここでも、1つの場所ですべてのファイルを管理する方が簡単だからです。

このXML-アプローチあなたは、たとえば、ページの多くのディレクトリの名前を変更したときに非常に便利です。この場合、それはする必要があります 代わりに内部の各ページに個別のルールのディレクトリのための単一のリダイレクトルールを作成します。例えば

<RoutingRule>
    <Condition>
        <KeyPrefixEquals>blog/</KeyPrefixEquals>
    </Condition>
    <Redirect>
        <ReplaceKeyPrefixWith>it-blog/</ReplaceKeyPrefixWith>
    </Redirect>
</RoutingRule>

このルールexample.com/blog/whateverによるexample.com/it-blog/whateverにリダイレクトされます。

このようなアプローチのもう一つの便利な機能は、それが唯一のプレフィックスを置き換えることです。ディレクトリと同じようにそれは可能です リダイレクトページが、クエリパラメータを保存します。これらのクエリのいくつかのJS処理がある場合には、適切な可能性があり パラメーター。 X-AMZ-ウェブサイトリダイレクト・ロケーション・メタデータを使用すると、おそらくそれらを失うでしょう。

私は書き込みを言及し、読み取りXMLは不便かもしれないと。これを克服するために、私はをhref="http://sukharevd.net/static/files/blog/s3routes/index.html">書きました XML形式に前者と新しいURLとプレーンテキストに変換します。これは、使用しています KeyPrefixEquals述語とReplaceKeyPrefixWithリダイレクトを実行します。

最後に、ドキュメントのに応じて、 ウェブサイトのホスティングが無効になっている場合は、リダイレクトのサポートは、このバケットには適用されません。

能力が最近追加されました:<のhref = "http://aws.typepad.com/aws/2012/10/amazon-s3-support-for-website-redirects.html" のrel = "noreferrer" > http://aws.typepad.com/aws/2012/10/amazon-s3-support-for-website-redirects.html の

編集:この機能は現在、AWSでのネイティブであるとして上記の解答を参照してください

そうでもないいいえ。 これを可能に作り付けの機能はありません、しかし、何を行うことができますが、あなたのオブジェクトを作成することで、あなたがHTMLとして保存していない場合でも、あなたがHTMLファイルとしてそれを適用することができます。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <meta http-equiv="Refresh" content="0; URL=http://www.example.com/target/">
    <title>Redirect</title>
</head>

<body>
    <a href="http://www.example.com/target/">http://www.example.com/target/</a>
</body>
</html>

ここで、このページを見てください:。すぐそこにソースを表示

ビューソース: http://carltonbale.com.s3.amazonaws.com /distance_chart.pngする

あなたはここでの説明を見ることができます:

ポイント8: http://carltonbale.com/9-hidden-機能・オブ・アマゾン-S3

.htaccessファイル301Amazon S3リダイレクト翻訳


htaccessスタイル:

Redirect 301 /old/old.html http://www.new.com/new/new.html

変換する

<RoutingRule>
    <Condition>
        <KeyPrefixEquals>old/old.html</KeyPrefixEquals>
    </Condition>
    <Redirect>
        <HostName>www.new.com</HostName>
        <Protocol>http</Protocol>
        <HttpRedirectCode>301</HttpRedirectCode>
        <ReplaceKeyWith>new/new.html</ReplaceKeyWith>
    </Redirect>
</RoutingRule>

おそらく書けなスクリプトに沿ってライン:

// -----------------
// Javascript
// htaccess to amazon s3 redirect for static s3 websites.
// (XML goes into S3 Bucket Properties Editor > [x] Enable website hosting > Edit Redirection Rules box.)
// -----------------

var list = [
    "Redirect 301 /old/old-1.html http://www.new.com/new/new-1.html",
    "Redirect 301 /old/old-2.html http://www.new.com/new/new-2.html",
    "Redirect 301 /old/old-3.html http://www.new.com/new/new-3.html"
];

var output = [];

output.push('<?xml version="1.0"?>');
output.push('<RoutingRules>');

for(var i=0; i<list.length; i++){

    var item = list[i].replace("Redirect 301 /", "").split(" ");
    var oldLoc = item[0];
    var newLoc = item[1];

    output.push("   <RoutingRule>");
    output.push("       <Condition>");
    output.push("           <KeyPrefixEquals>" + oldLoc + "/KeyPrefixEquals>");
    output.push("       </Condition>");

    output.push("       <Redirect>");
    if(newLoc.substr(0, 1) == "/"){

        output.push("           <ReplaceKeyWith>" + newLoc + "</ReplaceKeyWith>");

    } else {

        var splitNewLoc = newLoc.replace("http://", "").split("/");
        var host = splitNewLoc.shift();
        var path = splitNewLoc.join("/");

        output.push("           <HostName>" + host + "</HostName>");
        output.push("           <Protocol>http</Protocol>");
        output.push("           <HttpRedirectCode>301</HttpRedirectCode>");

        if(path){
            output.push("           <ReplaceKeyWith>" + path + "</ReplaceKeyWith>");
        }

    }

    output.push("       </Redirect>");
    output.push("   </RoutingRule>");

}

output.push('</RoutingRules>');

print(output.join("\n"));

警告:アマゾンの数を制限するリダイレクトルールを50になります。

AWSCLI きいこ簡単に在のような)

  1. 必ずバケット100%公開
  2. 必ずバケットはウェブサイトモード
  3. のみをご参照サイトを利用でURL https://<bucket_name>.s3-website-<region>.amazonaws.com
  4. をご利用 s3api 通話の設定にリダイレクト

    aws s3apiれたオブジェクト--acl公読み--サイトへのリダイレクト-場所"http://other-location.com"--バケットfoo-バケット--キー somewhere/blah

注意:すなanyオブジェクトS3であるだけで、301、リダイレクト Location ヘッダを表します。

試験

curl -v 2 -L https://<bucket_name>.s3-website-<region>.amazonaws.com/somewhere/blah

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top