【问题标题】:AddType in htaccess causes page to downloadhtaccess 中的 AddType 导致页面下载
【发布时间】:2013-06-06 03:09:55
【问题描述】:

我已经阅读了大约 10 个这样的问题,但这个简单的问题似乎没有答案。

什么可能导致 .htm 文件被下载而不是作为 php 执行?

我正在使用以下代码:

AddType application/x-httpd-php htm

我尝试了很多组合,但都没有成功。

我还能尝试什么?

我只需要 .htm 和 .html 文件来执行 php。

【问题讨论】:

  • 使用 curl -vwget -S 检查脚本的 Content-type 响应头。
  • 内容类型:application/x-httpd-php
  • 所以忘了我下面说的,我们知道application/x-httpd-php是正确的。
  • 你有 php 作为模块还是 cgi 脚本?试试php.net/manual/en/install.unix.apache2.php

标签: php html .htaccess


【解决方案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 中删除了 AddHandlerAddType(我使用了 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

          【讨论】:

            猜你喜欢
            • 2020-02-14
            • 2011-06-09
            • 1970-01-01
            • 2012-01-09
            • 1970-01-01
            • 1970-01-01
            • 2011-02-05
            • 1970-01-01
            相关资源
            最近更新 更多