POST以外のすべてのHTTPメソッドを拒否する方法を探していました。はい、私はこれがあまり妨げないかもしれないことを理解していますが、私はそれを機能させたいと思います。.htaccessファイルを使用して投稿する以外のすべてを拒否する方法に出くわしました。
RewriteEngine On
RewriteCond %{REQUEST_METHOD} !^POST
RewriteRule ^.*$ /home/user/public_html/folder/bad_request.php
今私のiPhoneアプリには、ウェブサイトにデータをPOSTする次のコードがあります。
NSString *post_length = [NSString stringWithFormat:@"%d",[post_data length]];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://folder.domain.com/"]];
[request setHTTPMethod:@"POST"];
[request setValue:post_length forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:post_data];
上記のように現在の.htaccessでこのコードを実行すると、データを投稿していないかのようにbad_requestページが表示されますが、.htaccessルールを!^ GETに変更すると、ブラウザでアクセスしてアクセスできますが、投稿するとiPhoneのコードで私は拒否されます...それは逆に機能します。なぜそれが機能しないのか誰かが知っていますか?