我一直在寻找拒绝所有HTTP方法但POST的方法.是的,我意识到这可能不会阻止很多,但我想让它工作.我遇到了一种拒绝所有但使用.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代码,我被拒绝…所以这是倒退的.有谁知道它为什么不工作?