htaccess 中的 AddType 导致页面下载
Posted
技术标签:
【中文标题】htaccess 中的 AddType 导致页面下载【英文标题】:AddType in htaccess causes page to download 【发布时间】:2013-06-06 03:09:55 【问题描述】:我已经阅读了大约 10 个这样的问题,但这个简单的问题似乎没有答案。
什么可能导致 .htm 文件被下载而不是作为 php 执行?
我正在使用以下代码:
AddType application/x-httpd-php htm
我尝试了很多组合,但都没有成功。
我还能尝试什么?
我只需要 .htm 和 .html 文件来执行 php。
【问题讨论】:
使用curl -v
或 wget -S
检查脚本的 Content-type
响应头。
内容类型:application/x-httpd-php
所以忘了我下面说的,我们知道application/x-httpd-php
是正确的。
你有 php 作为模块还是 cgi 脚本?试试php.net/manual/en/install.unix.apache2.php
【参考方案1】:
也使用AddHandler
,将htm
更改为.htm
并添加.html
AddHandler application/x-httpd-php .htm .html
AddType application/x-httpd-php .htm .html
http://www.suffix.be/blog/addhandler-addtype-directives
【讨论】:
你看到了什么? php是否安装正确?如果您将<?php phpinfo(); ?>
放入.php
文件中会执行吗?
我在我的 html 页面上得到了这个: 由于某种原因 php 被注释掉了。
您使用的是localhost
还是共享主机或...?有时只是 x-httpd-php
而不是 application/x-httpd-php
工作......
我正在使用测试服务器。我尝试了所有可能的组合,包括这个
还有一件事...确保 .htaccess 允许覆盖启用 AllowOverride All
httpd.apache.org/docs/2.0/mod/core.html#allowoverride【参考方案2】:
我遇到了同样的问题,但后来我发现我正在使用的 php 版本是 php5。我将处理程序更改为以下内容并且有效!
AddHandler x-httpd-php5-3 .php
AddHandler application/x-httpd-php5 .php
【讨论】:
【参考方案3】:我遇到了同样的问题,在这里找不到答案。确实在这个 cpanel 论坛上找到了它: https://forums.cpanel.net/threads/php-script-is-not-working-in-html-file.595195/
他们的建议是使用这个:
AddHandler application/x-httpd-ea-php56 .htm .html .shtml
AddType application/x-httpd-php5 .php
不过,我将 PHP 与 JSON 一起使用。在此 PHP 确实工作之后,但 JSON 没有。通过删除 AddType 并坚持使用 AddHandler 解决了它
AddHandler application/x-httpd-ea-php56 .htm .html .shtml
【讨论】:
【参考方案4】:我正在分享我自己对这个超级令人沮丧的问题的经验。我的主机被另一家主机提供商接管,他们改变了技术。其中一项更改允许我随意编辑我自己的 PHP 版本,但绝对没有一个(从最低的 5.4 到最高的 7.2)正常工作。我在我的所有域中使用了一个全局 .htaccess(放置在根目录中),并且我的 AddType-s 和 AddHangler-s 在文件的开头。我知道的很少——当我更改 PHP 版本时,这个小家伙写了正确的字符串,定义了我的 PHP 版本的正确名称在那个 .htaccess 文件的最后。当我在文件开头定义类型时,我使用了错误的句柄并且完全跳过了底部声明,Apache 没有识别该技术并决定直接下载。
所以请注意您的托管服务提供商上的自定义 PHP 句柄定义。
最后对我有用的是:
<IfModule mime_module>
AddType application/x-httpd-ea-php72___lsphp .php .php7 .phtml .htm .html
</IfModule>
注意附加在标准“x-httpd-ea-php72”句柄末尾的“___lsphp”...
天哪,这把我吃了这么多……
【讨论】:
这里有类似的经历。我必须添加AddHandler application/x-httpd-alt-php73___lsphp .html .htm
。我不确定是否有一种简单的方法可以计算出这个名字。我的托管服务提供商帮助了我。【参考方案5】:
在 Apache 和 nginx 中只能工作 .htaccess
文件:
<FilesMatch "\.html$">
SetHandler php-script
</FilesMatch>
我还从 Apache conf 中删除了 AddHandler
和 AddType
(我使用了 plesk)。
【讨论】:
谢谢Serghej,这个问题已经有7年了,但我很感激你的建议。【参考方案6】:将此行添加到您的 .htaccess 文件中(已解决)
AddHandler application/x-httpd-php5 .php .php4 .php5 .html .htm .phtml .shtml
【讨论】:
AddHandler 应用程序/x-httpd-php5 .php .php4 .php5 .html .htm .phtml .shtml【参考方案7】:尝试: 应用程序/x-httpd-ea-php5 或 适用于 PHP 5.6 的 application/x-httpd-ea-php56 升级到 EasyApache 4 后我不得不更改为这个
道格 Smartlab 软件
【讨论】:
【参考方案8】:试试
AddHandler fcgid-script .htm .html
或者
AddHandler x-mapp-php5 .html .htm
【讨论】:
【参考方案9】:将此添加到 .htaccess 文件中
AddType application/x-httpd-php .php .php5 .phtml
【讨论】:
以上是关于htaccess 中的 AddType 导致页面下载的主要内容,如果未能解决你的问题,请参考以下文章
使用 .htaccess 文件后,从我网站上的一个页面重定向到另一个页面会导致 404 错误