我如何专门禁用一些Apache模块指令要在.htaccess中使用

我是网站托pipe人和网站所有者。

作为一个托pipe人,我不想在我的客户网站的.htaccess中禁用某些模块指令。

由于一些网站作为CDN,我想禁用例如AddHandler(和更多)从mod_mime。 所以,即使PHPfile upload,他们不能执行。

虽然来自mod_rewrite的指令如RewriteRule仍然不错。

在pseude代码中解释它:

AllowOverride All -mod_mime -DocumentRoot -CustomLog -ErrorLog 

文档https://httpd.apache.org/docs/2.2/mod/mod_mime.html#AddHandler说上下文是.htaccess,我可以限制这个模块指令的上下文吗? 我不怕修补或重新编译它。

我将如何解决这个问题? 谢谢!

从字面上来看,答案就在我的鼻子下面。

但是,您将需要Apache 2.4

https://httpd.apache.org/docs/current/mod/core.html#allowoverridelist

 <Directory /var/www/vhosts> AllowOverride None AllowOverrideList RewriteEngine RewriteOptions RewriteBase RewriteCond RewriteRule Require all granted </Directory> 

将只允许在AllowOverrideList中指定的那些指令。 所有其他人将导致内部服务器错误。

尽pipe如此,对整个模块也一样,但这对我来说是一个很好的解决scheme。

再次感谢SF

DocumentRootCustomLogErrorLog在.htaccess中已经不可用,所以这不是问题。

据我所知,没有办法专门禁用所有的mod_mime。 你将不得不禁用所有的FileInfo,这可能不是你想要的。

 <Directory /var/www/vhosts> AllowOverride All -FileInfo RemoveHandler .php </Directory>