web-dev-qa-db-ja.com

この配布は、HTTP要求を許可するように構成されていません

This distribution is not configured to allow the HTTP request method that was used for this request. The distribution supports only cachable requests. 

Amazon Cloudfrontでhttpsのみを受け入れるようにWebサイトを構成しました。一言で言えば、PHPログインフォームがあり、ログインに成功すると、次のようにユーザーをリダイレクトします。

 if(isset($_POST['login'])){

[...]
        echo "<script>window.open('coursePayment.php?crs_id=$crs_id','_self')</script>";

以下はフォームです:

 <form style="margin-top:-20px" method='post' action='' class='form-horizontal' role='form'>
       <input type="hidden" id="couponCodeLogin" name="couponCodeLogin">
        <input type="hidden" id="couponCodeLoginAmount" name="couponCodeLoginAmount">
<br><br>
 <div class="group">      
            <input type='text' class='form-control' name='email' required>
      <span class="highlight"></span>
      <span class="bar"></span>
      <label>Email</label>
    </div>

    <div class="group">      
            <input type='password' class='form-control' name='pass' required>
      <span class="highlight"></span>
      <span class="bar"></span>
      <label>Password</label>
    </div>


            <h5 style="color:#FF6400; cursor:context-menu; margin-top:0px" class="displayForgotPassword">Forgot your password? Click here to retrieve it.</h5><br>
            <input type='submit' id='moreInfoButton' name='login' value='Continue' class='btn btn-danger'>                               
          </form> 
20

エラーが伝えようとしているのは、POSTを使用できないことです。キャッシュ可能とは、このコンテキストでのGETを意味します。先に進み、POST、PUTなどの「アップロードリクエスト」を許可するようにクラウドフロントを設定する必要があります。この場合、リクエストはCloudfrontが使用するオリジンに送信されます。

AWSドキュメント: http://docs.aws.Amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-creating.html

http://docs.aws.Amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-creating-console.html

http://docs.aws.Amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html

最後のリンクで許可されたHTTPメソッドを探します。

18
Mircea

最後に、httpメソッドを変更できるWebページを取得しました。 enter image description here

ありがとう、Sanjay Salunkhe

13
Sanjay Salunkhe

このエラーは、CloudFrontが送信中のHTTPリクエスト(POSTPATCHなど)を受け入れるように構成されていないために発生します。

これを修正するには、CloudFrontディストリビューションの設定を変更して、すべてのHTTPメソッドを受け入れます。

これを行うには、CloudFrontディストリビューションのBehaviorsタブをクリックし、デフォルトの動作を選択して、Editをクリックし、Allowed HTTP MethodsからGET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE、[Yes, Edit右下の[変更を保存します。

Change Allowed HTTP Methods in a CloudFront distribution

CloudFrontディストリビューションが変更を反映するのに数分かかる場合があります。

6
cgenco