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

标签 php .htaccess ddev

想要使用 DDEV 进行本地开发,并且我有一个包含遗留内容的网站,需要在扩展名为 .html 的页面上运行 php。在其他测试环境中,我在 .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,带有 php7.3 的 ddev1.16.5,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 文件。您可以使用 https://stackoverflow.com/a/65693405/215713 中的答案来执行此操作
  2. 允许在 apache 配置中处理 html 文件。我确信有不止一种方法可以做到这一点,您也许可以在 .htaccess 中做到这一点,但我通过在 .ddev/apache/apache-site.conf 中添加端口 80 虚拟主机这一节来做到这一点(当然,删除文件顶部的 #ddev-generate ):
 <FilesMatch ".+\.(html|ph(ar|p|tml))$">
      SetHandler "proxy:unix:/var/run/php-fpm.sock|fcgi://localhost"
  </FilesMatch>

关于php - 在带有 .htaccess 的 .html 页面上运行 php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65668764/

相关文章:

.htaccess - 如何使用 php 在我的目录中创建友好的 url

php - 如何在 CodeIgniter 中获取迁移配置项?

php - 通过 COND1 AND (COND2 OR COND3) 过滤 Magento 集合

php - 将 MYSQL 数据库中的多行元信息组合到一个响应中

docker - 已安装的软件包和/home/* 文件有时会在 ddev 重新启动(或 ddev 停止、启动)时重置

docker - 为什么 Composer create-project for Drupal 在 WSL2 中失败?

composer-php - 我如何在 DDEV 容器中使用主机中的 Composer 缓存?

php - 如何从 mysql 数据库构建 JSON 数组

php - 使用 .htaccess 创建 SEO 网址

apache - 通过 .htaccess 设置过期 header 和 gzipping 数据