【问题标题】:How to execute PHP on Specific HTML Files on NGINX如何在 NGINX 上的特定 HTML 文件上执行 PHP
【发布时间】:2021-06-06 08:16:12
【问题描述】:

我正在我的一些 HTML 文件中执行 PHP 代码,但由于我只想对某些文件执行此操作,因此我只想为特定文件创建 .htaccess 规则。

我当前的配置工作正常,但它是我所有的 html 文件,甚至是通过 PHP 引擎解释的静态文件;

    # handle .php
    location ~ \.(php|html|htm)$ {
        fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
        include      nginxconfig.io/php_fastcgi.conf;
    }

到目前为止,我尝试的是在 .htaccess 文件上,但看起来它只适用于 Apache;

<Files mypage.html>
AddType application/x-httpd-php .html 
</Files>

我应该为每个我想使用 PHP 的 html 文件创建 location 吗?

【问题讨论】:

  • 这些文件包含 PHP 而没有 .php 扩展名的任何具体原因?
  • 因为以后可以更改技术,同时轻松保持静态部分。还有这个; w3.org/TR/cooluris :)
  • 对我来说听起来像是早期的优化。你认为这样做会得到什么?如果您将 PHP 换成其他东西,您是否还需要更改 php 硬编码的规则?

标签: php html nginx


【解决方案1】:

使用精确匹配:

    # add another location:
    location = /mypage.html {
        fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
        include      nginxconfig.io/php_fastcgi.conf;
    }

【讨论】:

  • 看起来,完全匹配似乎是一个更好的选择,有没有什么有用的方法可以为多个文件应用单个匹配规则?例如,我想将它应用于mypage.htmlyourpage.html。或者我应该为他们每个人创建一个块?
  • 如果他们只是少数几个,只需为每个创建一个位置。
  • 谢谢 Danila,很高兴看到有人对哪怕是一点点性能调整都感兴趣 :) 我开始使用 location ~ /api/?.*\.(php|html|htm)$
猜你喜欢
  • 1970-01-01
  • 2019-06-20
  • 2021-03-16
  • 1970-01-01
  • 2016-10-27
  • 2014-10-17
  • 2015-04-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多