【问题标题】:Process HTML files like PHP处理 HTML 文件,如 PHP
【发布时间】:2013-10-24 05:53:09
【问题描述】:

我一直在尝试使用 .htaccess 文件让 .html 文件像 .PHP 文件一样进行处理。我使用了以下,两者都不起作用,并且尝试访问测试页面让我可以选择下载不存在的文件。我该如何解决这个问题?

这两个我都试过了;

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

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

想法是允许包含在我的网页中,但仍使用 .html 文件。

下面是我的 .htaccess 文件中的更多代码,我认为它不会与 addType 混淆,但我会发布它。

## Hide .html extension
# To externally redirect /dir/foo.html to /dir/foo
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.html [NC]
RewriteRule ^ %1 [R,L,NC]

## To internally redirect /dir/foo to /dir/foo.html
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^ %{REQUEST_URI}.html [L]

1&1 IONOS 已决定只允许我使用以下代码进行操作;

AddHandler x-mapp-php5 .html .htm

【问题讨论】:

  • 您需要添加AddHandler application/x-httpd-php .html .htm
  • 这对我也有帮助,由于某种原因,主机 LCN 也决定很难,只允许“AddHandler x-mapp-php5 .html .htm”。我会建议我的客户搬走!

标签: php html .htaccess include


【解决方案1】:

你需要添加

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

【讨论】:

  • @Switchfire 在没有.htaccess 的情况下进行测试。很确定这就是问题所在。这应该有效,我自己使用它。暂时删除.htaccess或禁用它。
  • @Switchfire 也尝试添加AddHandler application/x-httpd-php5 .html .htm,但我怀疑这会有所作为。
  • 我禁用了它并使用了一个新的干净的 .htaccess 文件,但仍然无法正常工作,我正在使用一个带有 echo 的 .html 文件,但什么也没发生。会不会是我的主人?
  • @Switchfire 您的.html 文件设置为<?php echo "Hello"; ?> 吗?它可能是你的主人。您是否尝试过使用带有.php 扩展名的实际文件?
  • 这行得通,找到了几个其他版本的处理程序 AddHandler x-mapp-php5 .html .htm
【解决方案2】:

试试这个:

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

AddHandler x-httpd-php .html .htm

<FilesMatch "\.(htm|html|php)$">
SetHandler application/x-httpd-php
</FilesMatch>

<FilesMatch "\.(htm|html|php)$">
SetHandler application/x-httpd-php5
</FilesMatch>

编辑: 对于 1&1 服务器:

AddType x-mapp-php5 .html .htm

其中一个应该可以工作

【讨论】:

  • @Switchfire 和这个:AddHandler application/x-httpd-php5 .html .htm
  • 您是否拥有在 .htaccess 文件中添加处理程序所需的访问权限?
  • 是的,我拥有完全访问权限,我相信这是因为托管公司的原因,我已将代码添加到我的原始帖子中。谢谢。
  • @Switchfire 我忘了提这个。 1&1 仅适用于此。
  • @Don 谢谢,这 => AddHandler application/x-httpd-php5 .html .htm 为我工作,我在 KnownHost 使用 SuPHP
【解决方案3】:

你也可以试试下面的代码。

AddHandler x-httpd-php .html .htm

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

【讨论】:

    【解决方案4】:

    你需要知道你是否使用 php-fpm 而不是 php 模块。如果你使用的是 php-fpm,那么你必须做两件事:

    1) 在 httpd.conf 中添加以下行:

    <FilesMatch \.(html)$>
        SetHandler "proxy:unix:/run/php-fpm/www.sock|fcgi://localhost"
    </FilesMatch>
    

    2) 在 php-fpm.d/www.conf 中确保您有该行

     security.limit_extensions =
    

    这会奏效。也许有更好的设置,我不知道。我确实知道,如果您有 php-fpm,那么涉及 AddHandler、AddType 的答案都不会起作用。

    【讨论】:

      猜你喜欢
      • 2016-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-20
      • 2015-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多