我需要将enable_post_data_reading设置为关闭网站上的一组特定路径,并且无法使其正常工作。情况如下:
Apache 2.2.22,PHP 5.4.34
尝试使用in指令设置标志。
使用了URL重写(它是Drupal站点),因此每个目录的htaccess文件将无效。
如果我在php.ini中将enable_post_data_reading设置为“off”,则会按预期处理发布数据,并且特定页面可以正常工作,但会破坏网站的其余部分。但是,我至少向自己证明了这个设置是可行的。
如果我在指令中设置了一个测试环境变量,它在预期的页面上是可见的,因此匹配正确。
但是,如果我在指令中将enable_post_data_reading设置为“off”,则会被忽略。
同样,如果我在php.ini中将其设置为“on”,然后在虚拟主机中将其设置为“off”,它将保持打开状态。
看起来虽然这种结构很好:
<VirtualHost 192.169.0.1:80>
# Virtual host name, docroot, etc.
<Location /apply/>
SetEnv foo bar
</Location>
</VirtualHost>
...如果我这样做:
<VirtualHost 192.169.0.1:80>
# Virtual host name, docroot, etc.
<Location /apply/>
php_flag enable_post_data_reading on
</Location>
</VirtualHost>
忽略php_flag指令。
那么,我做错了什么?还有其他地方我可以设置有效的旗帜吗?
提前致谢...
答案 0 :(得分:1)
好的,所以我们做了大量的测试。当URL被重写时,Location指令似乎无法正常工作,因此未设置PHP标志。
然而,我们发现了一种解决方法:
这似乎完全符合我们的要求:PHP标志已设置,Drupal正常处理请求。相当间接,但它比任何其他可能的解决方案更好。