RewriteRule 对Apache / mod_php没有影响

我试图阻止PHPparsingPOST请求。 当它看到相应的MIMEtypes时会自动执行。 为此,我正在考虑遵循RewriteRule hack:

RewriteCond %{HTTP:Content-Type} ^(multipart/form-data\s*;.*)$ RewriteRule mime.php - [E=CONTENT_TYPE:no/parsing;old=%1] 

但CGI环境仍然包含原始的[CONTENT_TYPE] => multipart/form..

  • 我可以设置例如ALT_CONTENT_TYPE troublefree,但这对我没有用处,因为PHP仍然在原始上运行。
  • 同样,更改大小写[E=ContEnt_Type]不会删除旧的标题值,它只是真正改变了大小写。
  • CONTENT_TYPE env var是在后期构build的吗? 因为我也无法像%{CONTENT_TYPE}那样访问它。 但是再次看,文档http://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewritecond没有提到它。

有没有另一种方法来重写这个CGIvariables?

本地testing服务器:

  Server version: Apache/2.2.14 (Ubuntu) mod_php, not fastcgi Linux snig 2.6.32-29-generic #58-Ubuntu SMP, 2011 x86_64 GNU/Linux 

这个答案build议一个Apache解决scheme:

 <Location "/backend/XXX.php"> SetEnvIf Content-Type ^(multipart/form-data)(.*) NEW_CONTENT_TYPE=multipart/form-data-alternate$2 OLD_CONTENT_TYPE=$1$2 RequestHeader set Content-Type %{NEW_CONTENT_TYPE}e env=NEW_CONTENT_TYPE </Location>