如何借助 .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 代码的主要内容,如果未能解决你的问题,请参考以下文章

如何在/ var / www / html / blog /上为laravel 5.6设置htaccess

如何通过htaccess设置默认网站页面?

.htaccess:FilterProvider 问题

.htaccess使用URL中的#item重写站点以进行直接文件访问

如何仅使用 .htaccess 文件设置 ssl

如何仅在 HTTPS 上从 .htaccess 设置 HSTS 标头 [关闭]