我试图强制 apache 将文件(或文件目录)作为 php 处理,而不管文件扩展名是什么。
该文件的链接如下,
Http://mysitehere.info/sig2/name.png
我努力了,
<FilesMatch “\.(jpg|jpeg|png|gif|swf|flv|ico)$”> SetHandler application/x-httpd-php </FilesMatch>
这不起作用,返回一个损坏的图像图标,name.png 文件名和 404 未找到,当尝试使用sig2/name.png/
我也尝试过,
<Files .+*^$[]()> ForceType application/x-httpd-php SetHandler application/x-httpd-php </Files>
我从以下位置获取了该 .htaccess 文件内容ForceType Sethandler 代码为什么这样做有效 这次返回的结果与第一次尝试相同。只有 404 或损坏的图像。
我也尝试过,
<Files "name.png"> SetHandler application/x-httpd-php </Files>
这确实“有效”,但它没有达到它的目的需求到。通过访问图像name.png
会给我一个损坏的图像。通过访问它可以name.png/
正常工作,但原因我不确定。
我已确保在 httpd.conf 中为图像目录设置了 AllowOverride All。
<Directory /var/www/> Options Indexes FollowSymLinks AllowOverride All Require All Granted </Directory>
我认为这应该足以让 Sethandler 或 ForceType 工作,但是我仍然无法获得我想要的效果。请注意,我的服务器上没有安装 mod_rewrite。还要注意的是,当<Files "name.png">
我运行 PHP 5.5.9 和最新版本的 Apache2 时,SetHandler 和 ForceType 具有相同的结果。
那么,我是不是做错了什么事情,或者我缺少 sethandler 所需的模块?
答案1
我发现我的代码中有一个重大错误,将标题设置为文本。这是代码中的致命错误,确实会返回损坏的图像。修复了错误,以上所有内容实际上都可以正常工作。