如何借助 .htaccess 设置在 HTML 文件中使用 PHP7 代码

Posted

技术标签:

【中文标题】如何借助 .htaccess 设置在 HTML 文件中使用 PHP7 代码【英文标题】:How to use PHP7 code in HTML file with the help of .htaccess setting 【发布时间】:2017-11-14 17:27:18 【问题描述】:

我正在使用 linux 服务器,并且在我的服务器中安装了 php 7.* 版本。我想在 html 文件中使用 PHP 代码。现在它在网页中呈现 PHP 代码。我在我的 .htaccess 文件中使用以下代码,但它不起作用。

AddHandler x-httpd-php .html .htm

AddHandler php7-script .php .html .htm

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

但所有这些都不起作用。

【问题讨论】:

您运行的是 Apache 还是 nginx?如果是 Apache,请尝试:AddType application/x-httpd-php .html .htm:***.com/questions/4687208/… @Magnus 运行 Apache。当我使用 AddType application/x-httpd-php .html .htm 时,它会下载带有 html 代码的文件。 只有在父目录中的AllowOverride 设置为true 时才能使用.htaccess 文件。另外,您确定 php 模块已加载到 Apache 中吗?检查启用模块目录。 @Gordon 如果它在 OP 在 htacess 中设置 AddHandler 时尝试下载文件,那么可以安全地假设 htaccess 已加载并使用。否则,它将被简单地忽略而不做任何更改。 @MagnusEriksson 是的,但是如果我在 *** 学到了一件事,那么验证比假设更安全。 【参考方案1】:

安装php7.0-cgi后

sudo apt install php7.0-cgi

you can add to your .htaccess

AddHandler php70-cgi .php 

告诉 Apache 在任何扩展名为“.php”的文件上运行 PHP 使用名为 php70-cgi 的模块,即 afaik modules/php70-cgi.so

它不工作的原因可能是

中的网络服务器设置
/etc/apache2/sites-available/default

如果有AllowOverride“无”,请将其设置为“全部”,否则您只能在&lt;Directory&gt; 中进行设置,而不能在.htaccess 中进行设置

<Directory /var/www/>
    ...
    AllowOverride All
    ...
</Directory>

【讨论】:

以上是关于如何借助 .htaccess 设置在 HTML 文件中使用 PHP7 代码的主要内容,如果未能解决你的问题,请参考以下文章