ForceType / htaccess文件扩展名的问题 – 扩展名的文件?

这是我的.htaccess文件:

<IfModule php4/5.c> php_admin_flag Option php_flag Option php_admin_value Option php_value Option </IfModule> <Files .> ForceType application/x-httpd-php SetHandler application/x-httpd-php </Files> 

上面的代码以某种方式工作,但我不知道为什么,但我预计500错误。 我可以在.htaccess,但主要是像阻塞机器人/蜘蛛等,而不是文件types的东西。 该文件的顶部是用于自定义php.ini文件(我试图复制我自己的Apache服务器,就像我没有访问正确的php.ini文件,就像他们在networking托pipe公司的网站上做的一样,只是为了在我的testing网站增加了现实主义)。

虽然我知道如何使用ForceType和SetHandler,但我不确定如何将其用于无扩展文件(例如,如果我有一个名为testing1的文件,我可以将其作为php运行)。

以前我是这样做的:

 <Files testing1> ForceType application/x-httpd-php SetHandler application/x-httpd-php </Files> 

但是对于每一个无延伸的文件来说,它变得单调乏味。

基本上,我想要做的是确保我有通过ForceType / SetHandler指令的无扩展名文件,但是这有可能吗? (在我的第一个例子中,上面的符号是通配符,还是不是?)

谢谢

Apache 2.4中已经删除了DefaultType 。 你最好的选择是以下几点:

 <Files *> ForceType application/x-httpd-php </Files> <Files *\.*> ForceType None </Files> 

这将捕获没有扩展名的所有文件,并将它们处理为PHP。 然后所有带扩展名的文件将被正常处理。

使用mod_mime_magic不是一个好的选择,因为每个文件都需要每次检查。 有关更多信息,请参阅mod_mime_magic文档 。

对于Apache 2.3及更早版本 ,只需更改DefaultType ,如下所示:

 DefaultType text/html 

这样,每个未被识别的文件(包括没有扩展名的文件)将被视为HTML。


对于Apache 2.4及更高版本 ,请参阅Tigger的答案 。

只有扩展名文件

这个解决方案只影响无延伸,静态服务的文件:(信贷尤金克纳 )

 <FilesMatch "^[^.]+$"> ForceType application/x-httpd-php </FilesMatch> 

任何未知的内容

这个会影响任何在没有Content-Type头的情况下会被传送的响应。 换句话说,它模仿了旧的DefaultType指令的行为:

 Header set Content-Type "application/x-httpd-php" "expr=-z %{CONTENT_TYPE}" 

应该可以在这里使用setifempty而不是-z表达式。 但是它会失败并在每个响应中覆盖标题,不管是否为空。 我不知道为什么。 埃里克科维纳说,这是因为Content-Type头没有被添加“直到最后一秒”。

仅限旧服务器

升级到2.4后会失败:(参见手册 )

 DefaultType application/x-httpd-php 

我花了很多年试图解决类似的问题,ForceType和DefaultType在某些页面上不起作用。

我找到了与kbk相同的答案。 编辑/etc/httpd/conf/httpd.conf并注释Mime Magic modulee的行:

 <Ifmodulee mod_mime_magic.c> # MIMEMagicFile /usr/share/magic.mime # MIMEMagicFile conf/magic </Ifmodulee> 

之后,重新启动Apache。

你可以在这里找到更多的信息: http : //realtechtalk.com/HTML_files_in_Apache_still_displaying_as_raw_text_even_with_DefaultType_ForceType_etc-1752-articles

(1)修改.htaccess或apache2.conf或httpd.conf

资源:

添加:DefaultType应用程序/八位字节流

如果存在,则删除:DefaultType text / plain

重新启动Apache

(2)启用mime_magic

资料来源:

启用mime_magic $ sudo a2enmod – > mime_magic

 $ sudo /etc/init.d/apache2 restart 

禁用模块:

 $ sudo a2dismod -> mime_magic $ sudo /etc/init.d/apache2 restart