[英]S3 PutBucketWebsite AWS PHP SDK
我想在AWS S3中創建一個純重定向存儲桶,我確信s3client可以正常運行。
$subdomain = 'test.example.com';
$redirectURL = 'https://www.somedomain.com/redirect?someparam';
$bucketID = $s3->createBucket(['Bucket' => $bucket ]);
$arg = array(
'Bucket' => $bucket, // REQUIRED
'WebsiteConfiguration' => array( // REQUIRED
'ErrorDocument' => array( 'Key' => 'err.html', ),
'IndexDocument' => array( 'Suffix' => 'index.html', ),
'RedirectAllRequestsTo' => array('HostName' => $redirectURL, ),
'RoutingRules' => array(
array(
'Redirect' => array(
'HostName' => $redirectURL,
'HttpRedirectCode' => '301',
),
),
),
),
);
$result = $s3->putBucketWebsite($arg);
但是,即使我嘗試更改其他設置,它也會輸出以下錯誤。
> Request ID E00C517E4F812581
Error Type client
Error Code MalformedXML
我想知道是否需要添加任何隱藏設置。
RedirectAllRequestsTo
與ErrorDocument
, IndexDocument
和RoutingRules
。 如果將所有內容重定向到其他地方,則不會評估錯誤或索引文檔,也不會應用路由規則。
RedirectAllRequestsTo
描述對此存儲桶的網站端點的每個請求的重定向行為。 如果存在此元素,則不允許其他同級。
類型:容器
祖先:WebsiteConfiguration
http://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTwebsite.html
最終我得到了解決方案,它有效
$subdomain = 'test.example.com';
$protocol = 'https';
$redirectURL = 'www.somedomain.com/redirect?someparam';
$bucketID = $s3->createBucket(['Bucket' => $bucket ]);
$arg = array(
'Bucket' => $bucket,
'WebsiteConfiguration' => array(
'RedirectAllRequestsTo' => array('HostName' => $redirectURL, 'Protocol'=>$protocol),
),
);
$result = $s3->putBucketWebsite($arg);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.