运行 php 在 .html 个带有 .htaccess 的页面上

Run php on .html pages with .htaccess

想使用 DDEV 进行本地开发,我有一个站点,其中包含遗留内容,需要 运行 php 在扩展名为 .html 的页面上。在其他测试环境中,我在 .htaccess 中使用了不同的行来启用它。在我的 ddev 测试环境中,我还不知道什么是有效的。

已更新 以下是我在 .htaccess 中尝试过的行(单独或组合取消注释):

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

#AddType application/x-httpd-php7 .html .htm
#AddHandler application/x-httpd-php7 .htm .html
    
#AddHandler x-httpd-php .htm .html
#AddType x-httpd-php .html .htm
    
#AddType x-httpd-php7 .html .htm
#AddHandler x-httpd-php7 .htm .html

#AddType x-httpd-php73 .htm .html
#AddHandler x-httpd-php73.htm .html
#AddHandler x-httpd-php7-3 .htm .html
      
#AddType application/x-httpd-php73 .html .htm
#AddType application/x-httpd-php7-3 .html .htm
#AddHandler application/x-httpd-php7-3 .htm .html

我还尝试更新 .ddev/apache/apache-site.conf,内容如下:

<FilesMatch ".html$"> 
SetHandler "proxy:fcgi://php:9000" 
</FilesMatch> 

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

但不可否认,这不是我熟悉的东西,所以可能不太正确。

macOS Big Sur,ddev1.16.5 与 php7.3,ddev webserver_type:apache-fpm。

有什么建议吗?谢谢!

问题是 php-fpm 未配置为允许使用 .html 文件扩展名。这是在 /etc/php//fpm/pool.d/www.conf.

中配置的

因此,您需要做两件事来启用您所追求的行为,允许 PHP 解释 HTML 个文件。

  1. 允许在 pool.d/www.conf 中处理 php-fpm 配置中的 html 个文件。您可以使用
  2. 中的答案执行此操作
  3. 允许在 apache 配置中处理 html 个文件。我确信有不止一种方法可以做到这一点,你也许可以在 .htaccess 中做到这一点,但我是通过在 .ddev/apache/apache-site.conf(和当然删除文件顶部的#ddev-generated):
 <FilesMatch ".+\.(html|ph(ar|p|tml))$">
      SetHandler "proxy:unix:/var/run/php-fpm.sock|fcgi://localhost"
  </FilesMatch>