我是网站托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
DocumentRoot , CustomLog和ErrorLog在.htaccess中已经不可用,所以这不是问题。
据我所知,没有办法专门禁用所有的mod_mime。 你将不得不禁用所有的FileInfo,这可能不是你想要的。
<Directory /var/www/vhosts> AllowOverride All -FileInfo RemoveHandler .php </Directory>