【问题标题】:Server not parsing .html as PHP服务器未将 .html 解析为 PHP
【发布时间】:2011-09-11 19:33:47
【问题描述】:

我的 .htaccess 文件中有包含的代码,但我尝试包含的 php 代码不起作用。

Options +Includes
AddType text/html  .htm .html
AddHandler server-parsed .htm .html
AddType application/octet-stream .vcf
AddOutputFilterByType DEFLATE text/html text/htm text/plain text/css text/php    text/javascript application/x-javascript

【问题讨论】:

    标签: php apache .htaccess


    【解决方案1】:

    从 cpanel 中打开“MultiPHP INI 编辑器” 然后启用“allow_url_include”

    然后将以下行添加到您的 .htaccess 文件中:

    <IfModule mod_mime.c>
    AddType application/x-httpd-ea-php73 .html .php .htm
    </IfModule>
    Options +FollowSymlinks
    

    重要提示:必须用你的替换php版本

    【讨论】:

      【解决方案2】:

      我被难住了 2 个小时,直到我查看 /etc/php/7.2/fpm/pool.d/www.conf 然后取消注释安全设置以强制 php 仅解析 php 并添加 .html 以便现在该行是 security.limit_extensions = .php .php3 .php4 .php5 .php7 .html 然后是 sudo service php7.2-fpm restart 并做

      <head>
      </head>
      <body>
          This should show date here:
      
      <?php echo date('l, F jS, Y'); ?>
      </body>
      

      并保存为test.html 工作正常并显示!

      【讨论】:

        【解决方案3】:

        对于 PHP 版本 5.6.40,将 PHP 作为“Apache 服务的 FRM 应用程序”运行 (Plesk) 在 .httaccess 中添加这个

        <FilesMatch "\.html$">
           SetHandler php-script
        </FilesMatch>
        

        对我有用

        【讨论】:

          【解决方案4】:

          如果您想要 www.examle.com/page.php?id=123&lang=it 在 seo 中的网址,例如 www.examle.com/it/1/2/3/pagina.html 添加.htaccess

          <Files it>
          SetHandler php-script
          </Files>
          <Files ru>
          SetHandler php-script
          </Files>
          

          当在 web http 根目录中创建文件“it”“ru”时,如下所示:

          <?php
             // www.examle.com/it
             $lang="it";
             include("urlrewrite.php"); 
          ?>
          <?php
             // www.examle.com/ru
             $lang="ru";
             include("urlrewrite.php"); 
          ?>
          

          【讨论】:

            【解决方案5】:

            AddHandler 应用程序/x-httpd-ea-php56 .html .htm

            AddType application/x-httpd-ea-php56 .html .htm

            这对我有用!

            【讨论】:

              【解决方案6】:

              非常重要的是,您必须将“php5”替换为您自己的确切 PHP 版本:

              AddHandler application/x-httpd-php5 .html .htm
              
              AddType application/x-httpd-php5 .html .htm
              

              因为我已经从网络上尝试了各种方式,但是直到我在我的 CPanel 下找到一个“MultiPHP Manager”菜单点,我才发现我的确切 PHP 版本/名称/ID(或不管它叫什么)是“ea-php56”,所以我的工作代码是:

              AddHandler application/x-httpd-ea-php56 .html .htm
              
              AddType application/x-httpd-ea-php56 .html .htm
              

              我已经浏览了一整天的论坛,cmets,但我在任何地方都没有找到这个非常重要的信息,所以如果它不工作,你可能还需要查找你的确切 PHP 版本!

              【讨论】:

                【解决方案7】:

                对于 Godaddy 服务器,它对我有用

                Options +ExecCGI
                AddHandler fcgid-script .html
                FCGIWrapper /usr/local/cpanel/cgi-sys/php5 .html
                

                【讨论】:

                  【解决方案8】:

                  PHP 与 SuPHP 一起运行:

                  <FilesMatch "\.html$">
                      SetHandler application/x-httpd-php
                  </FilesMatch>
                  

                  【讨论】:

                    【解决方案9】:

                    使用 PHP 5.5 将其添加到 .htaccess 解决了我的问题:

                    AddType application/x-httpd-php .html
                    

                    【讨论】:

                      【解决方案10】:

                      我在 Plesk 中使用 GoDaddy 专用服务器。这是我必须用来让它工作的东西:

                      AddHandler fcgid-script .htm
                      FCGIWrapper /var/www/cgi-bin/cgi_wrapper/cgi_wrapper .htm
                      

                      cgi_wrapper的实际路径参考文件:

                      /var/www/vhosts/yourdomain.com/conf/last_httpd.include
                      /etc/httpd/conf.d/php_cgi.conf

                      【讨论】:

                        【解决方案11】:

                        简化为 3 个步骤:

                        1. vim /etc/httpd/conf/httpd.conf

                        2. AddType application/x-httpd-php .html

                        3. service httpd restart

                        【讨论】:

                          【解决方案12】:

                          您可能想尝试将此行添加到您的 .htaccess 文件中:

                          AddHandler x-mapp-php6 .html .htm
                          

                          【讨论】:

                          • 虽然这可能会回答这个问题,但最好能稍微解释一下为什么会这样。
                          【解决方案13】:

                          如果您使用的是 Plesk 控制面板:

                          PHP 作为 Apache 模块运行:

                          <IfModule mod_php5.c>
                             AddHandler php5-script .php .html .htm
                             AddType text/html .php .html .htm
                          </IfModule>
                          

                          PHP 作为 FastCGI 应用程序运行:

                          <IfModule mod_fcgid.c>
                              <Files ~ (\.html)>
                                  SetHandler fcgid-script
                                  FCGIWrapper /var/www/cgi-bin/cgi_wrapper/cgi_wrapper .html
                                  Options +ExecCGI
                                  allow from all
                              </Files>
                          </IfModule>
                          

                          PHP 作为 CGI 应用程序运行:

                          <Files ~ (\.html)>
                              SetHandler None
                              AddHandler php-script .html
                              Options +ExecCGI
                              allow from all
                          </Files>
                          

                          然后 /usr/local/psa/admin/sbin/httpdmng --reconfigure-all

                          http://kb.odin.com/en/115773

                          【讨论】:

                          • 你我的朋友是救命稻草! “PHP 正在作为 CGI 应用程序运行”给了我一个问题,因为我们从 Apache 模块更改并且我们的 PHP 版本升级了。
                          • 我可以确认 Plesk 12.5 的 FastCGI 解决方案。但要补充一点,&lt;IfModule&gt; 条件必须包裹在&lt;Directory /path/to/my/vhost/root&gt;&lt;IfModule mod_fcgid.c&gt;...&lt;IfModule&gt;&lt;/Directory&gt;
                          【解决方案14】:

                          对于 godaddy 共享主机(php-cgi):

                          来自http://sagarnangare.com/parse-html-as-php-using-htaccess-file-on-godaddy/

                          AddHandler fcgid-script .html
                          FCGIWrapper /usr/local/cpanel/cgi-sys/php5 .html
                          

                          这是唯一对我有用的。

                          【讨论】:

                            【解决方案15】:

                            在带有 PHP 5 的 Apache 2.2.22 (Ubuntu) 上,将这些行添加到 /etc/apache2/mods-enabled/php5.conf

                            <FilesMatch ".+\.html$">
                                SetHandler application/x-httpd-php
                            </FilesMatch>
                            

                            然后重启apache

                            sudo service apache2 restart
                            

                            【讨论】:

                            • 嗯,适用于本地服务器,但我不想在主机会直接拒绝的实时服务器/共享服务器上遇到这个问题。
                            【解决方案16】:

                            如果您尝试运行非常旧的 PHP 代码,请确保您有

                            short_open_tag = On
                            

                            在你的 php.ini 中

                            或者,甚至更好(因为不再建议对新代码使用短开放标签)仅通过以下方式启用特定虚拟主机:

                            php_value short_open_tag On
                            

                            在 httpd.conf / .htaccess 文件中。

                            【讨论】:

                              【解决方案17】:

                              之前被这件事难住了,如果其他人都没有工作,那么可能发生的事情是你将它作为文件读取而不是通过 apache。检查您的地址栏并确保它以 localhost、您的 ip、127.0.0.1 或您的域名开头(如果您已将其设置为直接连接到您的服务器)。

                              【讨论】:

                                【解决方案18】:

                                如果你的服务器使用的是 PHP5,那么使用这个:

                                AddHandler application/x-httpd-php5 .html .htm
                                

                                如果不是 PHP5 则使用

                                AddHandler application/x-httpd-php .html .htm
                                

                                它在 CPanel 托管上对我有用。

                                如果您使用的是其他 linux 主机,请尝试以下操作:

                                <IfModule mod_mime.c>
                                AddType application/x-httpd-php .html .php .htm
                                </IfModule>
                                
                                Options +FollowSymlinks
                                

                                【讨论】:

                                  【解决方案19】:

                                  不知道它是否有帮助,但是……我搜索了一个小时后的例子:

                                  AddType application/x-httpd-php .php
                                  LoadModule php5_module "c:/server/php5/php5apache2_2.dll"
                                  ScriptAlias /_php/ "c:/server/php5/"
                                  

                                  在 httpd.conf 中

                                  没有 LoadModule 和 ScriptAlias 它根本不处理 php 并显示明文

                                  【讨论】:

                                    【解决方案20】:

                                    你可以试着只把这个AddType php .html .htm 放到你的htaccess 中,如果这个AddType application/x-httpd-php .html .htm 不起作用。

                                    【讨论】:

                                      【解决方案21】:

                                      BenG,有什么解决方案适合你吗?

                                      这可能会有所帮助——我发现这个话题令人困惑,因为这两种说法在我的本地开发环境中都适用于我

                                      AddHandler application/x-httpd-php .html .htm
                                      or
                                      AddType application/x-httpd-php .html .htm
                                      

                                      在阅读了关于这两个指令的 apache 文档后,您似乎想在添加尚未由 apache 处理的 mime 类型时使用AddType,而当您希望 apache 以不同于其默认处理方式处理文件时使用AddHandler该文件类型的。我可能是错的,但这似乎是手册所说的。

                                      因此,如果您希望 apache 像处理 .php 文件一样处理 .html 和 .htm,那么您将使用该指令:

                                      AddHandler application/x-httpd-php .html .htm
                                      

                                      你上面提到的 .htaccess 文件正在做一些事情,所以也许你可以首先验证它确实告诉 apache 处理 .htm 和 .html 文件,就好像它们是 .php 文件一样;然后转到您要使用的其他指令。

                                      【讨论】:

                                        【解决方案22】:

                                        试试:

                                        AddType application/x-httpd-php .html .htm
                                        

                                        更新 1

                                        它可能是特定于 PHP 版本的。如果您使用的是 PHP5,请尝试:

                                        AddType application/x-httpd-php5 .html .htm
                                        

                                        更新 2

                                        试试:

                                        RemoveHandler .html .htm
                                        AddType application/x-httpd-php .php .htm .html
                                        

                                        或者这里还有另一种方法:

                                        <FilesMatch "\.html$">
                                            ForceType application/x-httpd-php
                                        </FilesMatch>
                                        

                                        【讨论】:

                                        • 我继续尝试,当我重新加载页面时,chrome下载了一个名为“下载”的文件。前几天还在工作,所以我很难过。
                                        • 我正在使用 PHP5,但是在我进行更改后,chrome 仍在尝试下载文件。我很抱歉在这里一无所知,我对在 .htaccess 中工作还很陌生。我可以提供更多信息来帮助更有效地回答问题吗?
                                        • 我不是一个服务器管理员,所以我不确定为什么它不适合你。但是我在我的答案中添加了另一种方法来做到这一点。希望它有所帮助。
                                        • 还是不行。感谢您的帮助,我可能只需要联系我刚刚更换的旧 webdev 以找出导致他的后端这样做的原因。
                                        • RemoveHandler .html .htm AddType application/x-httpd-php5 .html .htm 为我工作
                                        【解决方案23】:

                                        来自http://support.lunarpages.com/knowledge_bases/article/321

                                        如何配置 Apache 来处理 .html 文件作为 suPHP 下的 PHP?你 需要删除任何以前的条目 用于将 .html 文件作为 PHP 和 在您的 .htaccess 中插入以下内容 文件:AddHandler x-httpd-php .html .htm 或者您可以手动添加 使用 Cpanel -> Apache 处理程序 -> 新:扩展名:.html .htm 处理程序: x-httpd-php 最新的 cPanel 服务器 实际上需要以下 而是:AddHandler 应用程序/x-httpd-php .html .htm 或 AddType application/x-httpd-php .html .htm 如果是第一种类型,请试试这个 不适用于文件。

                                        【讨论】:

                                          猜你喜欢
                                          • 2011-11-03
                                          • 2014-10-24
                                          • 2019-05-17
                                          • 1970-01-01
                                          • 1970-01-01
                                          • 1970-01-01
                                          • 2023-03-22
                                          • 2013-11-15
                                          相关资源
                                          最近更新 更多